Qt實現介面的視窗的區域性動態新增並布局

2021-10-25 01:26:38 字數 2385 閱讀 3152

#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中,場景檢視模...