在QT Designer中使用QDialog

时间:2017-06-23 15:05:06

标签: qt pyqt

我对QT很陌生,所以我不确定它有什么可能。

我喜欢使用QT Designer在GUI中定位对象并执行其他基本操作。我按照QDialog Tutorial上的示例进行操作。但是,我想知道我是否可以在QT Designer中执行相同的操作,以便我可以使用它来定位在单击" Hello World"之后弹出的对话框。框。

可以将对话框放在代码中,但这不是我要问的。

1 个答案:

答案 0 :(得分:1)

我相信使用Qt Designer是不可能的。但是,您始终可以单独创建QDialog并稍后加载.ui文件。您可以使用uic.loadUi方法。这将使对话框的所有对象动态可用,并为您节省大量的开发时间。

这是一个非常简短的例子:

import sys

from PyQt5 import uic
from PyQt5.QtWidgets import QApplication


class WindowLoader:
    """
    All windows and dialogs load here.
    """
    def __init__(self):

        # Your main window.
        self.ui = uic.loadUi("main.ui")
        self.ui.showMaximized()

        # Your custom dialog.
        self.dialog = uic.loadUi("dialog.ui")
        self.dialog.show()

        # Move your dialog later.
        self.dialog.move(50, 50)


app = QApplication(sys.argv)
window = WindowLoader()
sys.exit(app.exec_())

请记住,Qt Designer并非所有小部件和属性都可用。据我所知,Qt Designer中没有.move()。通常,您首先要设计.ui文件,然后从代码中调用任何无法访问的方法以便稍后修改属性。