#include
"dialog.h"
#include
intmain
(int argc,
char
*ar**)
dialog.h
#ifndef dialog_h
#define dialog_h
#include
#include
class
dialog
:public qdialog
;#endif
// dialog_h
dialog.cpp
#include
"dialog.h"
#include
#include
#include
/*問題描述:
* 動態實現新增加介面的布局*/
dialog::
dialog
(qwidget *parent)
:qdialog
(parent)")
; layout.
setspacing(15
);//設定布局中控制項之間的垂直距離
layout.
addwidget
(addbtn,0,
0,1,
1); layout.
addwidget
(widget,1,
0,10,
10);//為了彼此之間有參照
setlayout
(&layout)
;connect
(addbtn,
&qpushbutton::clicked,
this
,&dialog::slot_btnclicked)
; n =0;
row =0;
}dialog::
~dialog()
void dialog::
slot_btnclicked()
//沒有實現動態布局
qwidget *dlg =
newqwidget
(widget)
;// qdialog *dlg = new qdialog(widget);//qdialog是不被嵌入到父視窗部件的視窗,為頂級視窗
dlg-
>
show()
; dlg-
>
setobjectname
("child");
//qwidget#parent>
dlg-
>
setstylesheet
("qwidget#child");
// dlg->setstylesheet("qdialog#child");
layout1.
addwidget
(dlg,row+1,
(int
)n%4,1
,1);
//柵格布局沒有參照的情況下,先設定佔一行一列
n++;if
(n%4==0
) widget-
>
setlayout
(&layout1)
;}
執行程式後,介面效果如下:
**中含有對一些函式理解的注釋,其中最關鍵的理解是兩點:
1.qdialog為頂級視窗,沒有父部件,不被嵌入到父部件中。
2.柵格布局中需要有所佔行列的參考數。單一乙個控制項來使用柵格布局指定所佔行列時,除一行一列外,無法實現期望效果,即:介面上只有乙個按鈕,按鈕被放入柵格布局中,佔3行2列,執行效果是將按鈕進行了水平拉伸,幾乎佔據整個介面的長度。
在建立的專案的建構函式中加入如下**:
qpushbutton *btn =
newqpushbutton(tr
("開始"),
this);
btn-
>
show()
; qgridlayout *layout =
new qgridlayout;
layout-
>
addwidget
(btn,0,
0,4,
3);setlayout
(layout)
;
執行效果如下圖所示:
動態順序表部分介面的簡單實現
我們的動態順序表指的依舊是能動態開闢記憶體,需要用多少記憶體就開闢多少,從而合理的利用記憶體資源。seqlist d.h ifndef seqlist d h define seqlist d h include include include include define sz 2 初始化記憶體的...
Qt學習筆記 登入介面的實現與明文加密
主要通過qt5下的控制項布局功能實現,附上效果圖 比較簡陋 1 標題圖示的新增 2 明文加密 1.首先準備個ico圖示,命名例如 title.ico 2.用記事本新建個txt,裡面新增一行 idi icon1 icon discardable title.ico 儲存,修改字尾為.rc,例如 tit...
將OSG嵌入QT視窗系統中,實現拖拽介面
osg底層使用的是opengl圖形系統,qt也增加了對opengl的支援,因此,可以通過qt的opengl模組,實現將osg視窗嵌入到qt中,這樣可以充分利用qt的ui介面設計,滿足osg的2d的介面系統的不足。當然除了使用osg做2d渲染特效,可以盡情享受qt介面設計帶來的方便。qt中,場景檢視模...