外貿網站建設公司如何網上營銷
? ? ?分裂器QSplitter類提供了一個分裂器部件。和QBoxLayout類似,可以完成布局管理器的功能,但是包含在它里面的部件,默認是可以隨著分裂器的大小變化而變化的。
? ? ?比如一個按鈕放在布局管理器中,它的垂直方向默認是不會被拉伸的,但是放到分裂器中就可以被拉伸。還有一點不同就是,布局管理器繼承自QObject類,而分裂器卻是繼承自QFrame類,QFrame類又繼承自QWidget類,也就是說分裂器擁有QWidget類的特性,它是可見的,而且可以像QFrame一樣設置邊框。它實現(xiàn)了分割窗口的功能,允許用戶通過拖動它們之間的邊界來控制子部件的大小。
下面通過實例演示QSplitter類的使用
在源文件“main.cpp”具體代碼如下:
運行效果:
此實例中設定右部分分割窗口為可伸縮控件,
當整個對話框的寬度發(fā)生改變時,左部的文件編輯框寬度保持不變,右部的分割窗口寬度隨整個對話框大小的改變進行調整。
調用setOpaqueResize(bool)方法用于設定分割窗口的分割條,
在拖曳時是否為實時更新顯示,若設為true 則實時更新顯示,若設為false 則在拖曳時只顯示一條灰色的粗線條,在拖曳到位并釋放鼠標后再顯示分割條。默認設置為true。
調用setStretchFactor()方法用于設定可伸縮控件,
它的第1個參數(shù)用于指定設置的控件序號,控件序號按插入的先后次序從0起依次編號;
第2個參數(shù)為大于0的值,表示此控件為可伸縮控件。
splitterMain->setStretchFactor(1,1);
這里的“1”代表要設置的部件的索引,即第二個部件;“1”代表設置的拉伸因子,即這個部件在所有部件中的拉伸比率。
拉伸因子越大,當布局的空間發(fā)生變化時,該部件就會被拉伸得越多,以便填滿所有的空間。在這種情況下,因為設置的拉伸因子為1,所以該部件不會被拉伸,也就是說它的大小將是固定的。
如果想讓某些部件在空間變化時能夠自動拉伸,可以給這些部件設置較高的拉伸因子。例如,splitterMain->setStretchFactor(1, 2); 就會讓第二個部件的大小是第一個部件的兩倍。