【问题标题】:How to handle a QDialog displayed out of screen?如何处理显示在屏幕外的 QDialog?
【发布时间】:2013-09-28 03:50:31
【问题描述】:

我有一个主要的寡妇。我将它移动到底部边缘或角落。然后我通过单击其中的某个按钮打开一个对话框。该对话框位于主窗口的中心,因为我将主窗口设置为其父窗口。但是,由于主窗口位于边缘或角落,因此对话框不会显示在屏幕上。如何让它显示在屏幕上?

【问题讨论】:

    标签: qt qmainwindow qdialog qtgui


    【解决方案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:这可能应该是另一个问题。但这取决于小部件是否有父级。
    猜你喜欢
    • 2021-02-17
    • 1970-01-01
    • 1970-01-01
    • 2013-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多