QT StepByStep(2) 滑動杆的實現

2022-08-29 11:18:12 字數 1154 閱讀 7097

1、實現效果圖:

2、**清單:

3、**解析:

使用元件:

(1)qspinbox

qspinbox 是乙個有上下箭頭的微調器。

(2) qslider

qslider 是乙個滑動杆。

(3)qwidget

qwidget 乙個新的頂級視窗。

首先建立了乙個 qwidget 的例項,呼叫 setwindowtitle 函式來設定視窗標題。然後建立了乙個 qspinbox 和 qslider,分別設定了它們值的範圍,使用的是 setrange 函式。然後進行訊號槽的鏈結。這點後面再詳細說明。然後是乙個 qhboxlayout,就是乙個水平布局,按照從左到右的順序進行新增,使用 addwidget 新增好元件後,呼叫 qwidget 的 setlayout 把 qwidget的 layout 設定為我們定義的這個 layout。

比如下面的 spinbox - >setvalue(35)執行的時候,首先,spinbox 會將自己的值設為 35 ,這樣,它的值與原來的不一樣了(在沒有 setvalue 之前

的時候,預設值是 0),於是它發出了 valuechanged 訊號。slider 接收到這個訊號,於是**自己的 setvalue 函式,將它的值也設定成 35,它也發出了 valuechanged 訊號。當然,此時 spinbox 又收到了,不過它發現,if(spinbox==35) stop valuechanged。這個 35 和它本身的值是一樣的,於是它就不發出訊號,所以訊號傳遞就停止了。

總體來說,這是乙個迴圈結構,這個值的改變是通過int引數傳遞的,通過qt的訊號槽機制完成了乙個資料繫結,使兩個元件或者更多元件的狀態能夠同步變化。

qt 一共有三種主要的 layout,分別是:

qhboxlayout-   按照水平方向從左到右布局;

qvboxlayout-  按照豎直方向從上到下布局;

qgridlayout-  在乙個網格中進行布局,類似於 html 的 table。

layout 使用 addwidget 新增元件,使用 addlayout 可以新增子布局,因此,這就有了無窮無盡的組合方式。

Cocos2d lua 滑動選關效果

昨天看到前面的大佬在做這種效果,特意去請教了一下,剛開始以為是用pageview或者listview做的,原來是用最普通的觸控來實現的。感覺自己應該多思考多學習,不會的地方還是太多了,有些東西其實沒有自己想的那麼複雜,能用一些基本元素實現來實現的東西,自己有時候卻總是覺得是不是 不會 不懂,也可能是...

cocos2d x3 2 多點縮放單點滑動

重設bgsprite錨點和位置 bgsprite setanchorpoint vec2 anchorx,anchory bgsprite setposition vec2 absmidx,absmidy 根據兩觸控點前後的距離計算縮放倍率 auto scale bgsprite getscale ...

Cocos2d js中實現慣性滑動效果

什麼是慣性滑動效果呢?我們經常在手機上看到一種效果,拖著手機螢幕滑動,把手放開後,螢幕仍會因為慣性而滑動一段距離,這就是一種慣性滑動效果。現在的工作是做遊戲研發,因此也少不了要實現這種效果,初步想了一下,有幾種方案,當然,效果不太相同。方案如下 方案1 手放開後,讓螢幕固定滑動一段距離。這種方案最為...