QT在建構函式中寫的控制項不顯示(按鈕不顯示)問題

2021-10-01 23:54:02 字數 1277 閱讀 5084

一、問題:

有時間你會發現你在新建的工程中建構函式裡面編寫按鈕等控制項去初始化後執行發現視窗一片空白,什麼都不顯示,是什麼原因導致呢?

二、可能出現的原因:

1、你新建的工程師mainwindow子類工程,沒有設定父視窗。

2、沒有將控制項的父視窗設定成自己定義的widget。

eg:

#includeqmainwindow::qmainwindow(qmainwindow*parent) :

qmainwindow(parent),

ui(new ui::qmainwindow)

三、執行結果:

乙個空白窗體

四、解決方法:

解決方法1:

給按鈕控制項設定父視窗:qwidget,並且把按鈕新增到父視窗中。

#include#include#includeqmainwindow::qmainwindow(qmainwindow*parent) :

qmainwindow(parent),

ui(new ui::qmainwindow)

解決方法2:

直接建立qwidget的工程

#include#include#includewidget::widget(qwidget *parent) :

qwidget(parent),

ui(new ui::widget)

解決方法3:

#include#include#includeqmainwindow::qmainwindow(qmainwindow*parent) :

qmainwindow(parent),

ui(new ui::qmainwindow)

五、結論:

想窗體中的控制項可見,你必須將該窗體設定成這些控制項的父視窗。

怎麼讓新建的工程存在父子關係:

(1)把控制項新增到布局管理器中,qt會自動生成父子關係。比如解決方法1,2,可以直接新增按鈕到布局管理器中,不需要再qwdiget,這裡為了說清楚新增了,可以不需要。

(2)假如新建的qmainwindow,需要自己指定控制項的父窗體。比如解決方法3

Qt中QLabel不顯示的問題

qlabel label newqlabel this qpixmap pixmap pixmap.load res levelcompleteddialogbg.png label setgeometry 0 0,pixmap.width pixmap.height label setpixmap...

qt漢字顯示的問題 qt中不顯示標題欄的方法

qt中要顯示漢字,需要對編碼及字型進行設定。1,如果是在pc機上執行,則需要設定編碼,如下 qtextcodec setcodecfortr qtextcodec codecforname utf 8 qtextcodec setcodecforlocale qtextcodec codecforn...

mydate97時間控制項在IE中不顯示問題

1 這兩天做的乙個時間查詢,日期用mydate97控制項去選擇,但是在firfox下能夠正常顯示,並且能夠選擇日期,如下 但是在ie中卻怎麼都不顯示,也沒有指令碼錯誤。之後從demo中一步步那個刪啊,刪到最後,發現是引入js包的問題。引入wdatepicker.js的時候直接寫但是今天在ie中就是不...