[英]QT always on top on windows7/8
我想知道是否可以将QMainWindow设置为最佳状态。
我试过了:
mainWindow.setWindowFlags(Qt::WindowStaysOnBottomHint);
mainWindow是一个QMainWindow扩展对象。 但它不起作用,我的窗口消失了。
是的,这是可能的,但代码中有两个错误:
Qt::WindowStaysOnBottomHint
。 Qt::WindowStaysOnBottomHint
标志(代表您想要的相反)而不是Qt::WindowStaysOnTopHint
。 这样做的正确方法是:
Qt::WindowFlags flags = mainWindow.windowFlags();
mainWindow.setWindowFlags(flags | Qt::WindowStaysOnTopHint);
请注意,在X11上的某些窗口管理器上,您还必须传递Qt :: X11BypassWindowManagerHint才能使此标志正常工作。
在这种情况下,你应该这样做:
Qt::WindowFlags flags = mainWindow.windowFlags();
mainWindow.setWindowFlags(flags | Qt::X11BypassWindowManagerHint | Qt::WindowStaysOnTopHint);
如果你想把一个窗口作为Dialog,还有另一种方法。 只需调用setModal(true)或setWindowModality(),然后调用show()。 与exec()不同,show()会立即将控制权返回给调用者。它不会在exec()中作为QDialog而卡住。
即
setModel(true);//In Constructor
然后在调用或调用新窗口时,
MyWindow* myWindow = new MyWindow(this);
myWindow->show();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.