如何处理显示在屏幕外的 QDialog?
Posted
技术标签:
【中文标题】如何处理显示在屏幕外的 QDialog?【英文标题】:How to handle a QDialog displayed out of screen? 【发布时间】:2013-09-28 03:50:31 【问题描述】:我有一个主要的寡妇。我将它移动到底部边缘或角落。然后我通过单击其中的某个按钮打开一个对话框。该对话框位于主窗口的中心,因为我将主窗口设置为其父窗口。但是,由于主窗口位于边缘或角落,因此对话框不会显示在屏幕上。如何让它显示在屏幕上?
【问题讨论】:
【参考方案1】:你可以用负坐标move
它,直到它出现在屏幕上:
dialog.move(-dialog.width(), -dialog.height())
这应该移动它,使其右下边缘与主窗口的左上边缘对齐。
或者您可以使对话框成为无父对话框,并将其相对于屏幕坐标移动:
dialog.setParent(None)
dialog.move(400, 300)
【讨论】:
你知道如何检查它是否超出屏幕吗? @user1899020: qt-project.org/doc/qt-5.1/qtwidgets/qwidget.html#visible-prop 但如果前者不起作用,您可以随时询问位置并与屏幕坐标进行比较。 @user1899020:这可能应该是另一个问题。但这取决于小部件是否有父级。以上是关于如何处理显示在屏幕外的 QDialog?的主要内容,如果未能解决你的问题,请参考以下文章