我的QMainWindow
包含QGraphicsView
,它应该具有最小的宽度和高度。所以,我用下面的代码在QMainWindow
构造:在屏幕中心设置QMainWindow
ui.graphicsView->setMinimumHeight(VIEWWIDTH);
ui.graphicsView->setMinimumWidth(VIEWWIDTH);
然后我用下面的代码在屏幕的中心设置QMainWindow
:
QRect available_geom = QDesktopWidget().availableGeometry();
QRect current_geom = frameGeometry();
setGeometry(available_geom.width()/2 - current_geom.width()/2,
available_geom.height()/2 - current_geom.height()/2,
current_geom.width(),
current_geom.height());
但它不是设定在屏幕的中心。如果我从QGraphicsView
中省略setMinimumHeight()
和setMinimumWidth()
,则主窗口设置在屏幕的中心。如何克服这个问题?我正在使用Qt 4.5.2。
谢谢。
通常不鼓励手动定位窗口。窗口管理员的工作是定位窗口,如果您的应用程序手动将其自身居中,那将导致不一致。例如,在我的双头系统中,您的代码将放在窗口的哪个位置?除非你有很好的理由,否则不要对窗口进行微观管理。 – 2009-09-08 18:45:48
我见过从屏幕中间开始的软件。看上去不错。 – Donotalo 2009-09-10 06:41:28