子构件将丢失时的QMainWindow的非最大化
问题描述:
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的非最大化
答
在您初始化QRect时,您将pStateInfosBar的x坐标设置为您的屏幕宽度(250)。结果,如果您的窗口宽度小于屏幕宽度 - 250,则该窗口小部件将在窗口。
也许你正在寻找this->width() - 250
,而不是QApplication::desktop()->width() - 250
你指的窗口是哪个? ** QApplication :: desktop() - > width()**返回我的屏幕宽度,它是固定的。并且根据您所说的,_less than_小部件应该更多地显示出屏幕更宏的状态。 –
@ Crawl.W当我说“窗口”时,我的意思是表单。 setGeometry是相对于窗口而不是屏幕。因此,如果窗口距屏幕顶部50px,并且窗口小部件的几何图形为(20,20,50,50),则窗口小部件将从窗口顶部起20px,从窗口左侧起20px。 –
哦,哟,我不明白**几何**之前,谢谢。 –