2017-01-10 19 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

哦,哟,我不明白**几何**之前,谢谢。 –

相关问题