2017-01-10 58 views
0
ui->setupUi(this); 
setWindowState(Qt::WindowMaximized);//Qt::WindowFullScreen; 

QWidget *pStateInfosBar = new StateInfosBar(this); 
//pStateInfosBar->show(); 
QRect rcSibWannaGeometry(QApplication::desktop()->width() - 250, 
         style()->PixelMetric::PM_TitleBarHeight, 250, 
         height()); 
pStateInfosBar->setGeometry(rcSibWannaGeometry); 

我的代碼,如圖above.But的pStateInfosBar會丟失,當他的父窗口非最大化,當父母是maximized.Can人會重新出現告訴我爲什麼?子構件將丟失時的QMainWindow的非最大化

回答

0

在您初始化QRect時,您將pStateInfosBar的x座標設置爲您的屏幕寬度(250)。結果,如果您的窗口寬度小於屏幕寬度 - 250,則該窗口小部件將在窗口。

也許你正在尋找this->width() - 250,而不是QApplication::desktop()->width() - 250

+0

你指的窗口是哪個? ** QApplication :: desktop() - > width()**返回我的屏幕寬度,它是固定的。並且根據您所說的,_less than_小部件應該更多地顯示出屏幕更宏的狀態。 –

+0

@ Crawl.W當我說「窗口」時,我的意思是表單。 setGeometry是相對於窗口而不是屏幕。因此,如果窗口距屏幕頂部50px,並且窗口小部件的幾何圖形爲(20,20,50,50),則窗口小部件將從窗口頂部起20px,從窗口左側起20px。 –

+1

哦,喲,我不明白**幾何**之前,謝謝。 –

相關問題