我希望有一个Qt对话窗口:
通过制作对话框模态,我已经能够达到1和3,并且我可以通过使用Qt :: WindowStaysOnTopHint窗口标志来实现1和2。但我无法完成这三项工作 - 是否有可能?
如果答案是特定于操作系统的,我主要在Mac上工作,但我更喜欢适用于Windows和Linux的解决方案。谢谢!
答案 0 :(得分:1)
默认的QWidget足以满足您的需求。
如果您使用父窗口创建QWidget,它将位于其他窗口小部件之上。您只需要最后创建它或使用QWidget :: raise()正确堆叠它。
答案 1 :(得分:1)
我知道我已经发布了回答,但我找到了最佳解决方案:
使用QDockWidget
。 DockWidget将始终保持在其父级之上,如果将allowedAreas
属性设置为Qt::NoDockWidgetArea
,则窗口将按您所需的方式运行!
答案 2 :(得分:0)
此窗口将始终位于顶部:
self.setWindowFlags(QtCore.Qt.Dialog | QtCore.Qt.WindowStaysOnTopHint)
或者您可以传递现有的标志:
self.setWindowFlags( self.windowFlags() | QtCore.Qt.WindowStaysOnTopHint)
答案 3 :(得分:0)
仅当QDialog是使用NULL父级创建的,我才能重现原始问题。否则,以下几行足以满足要求1、2和3。
DiagramView