04、Hello World In Pyqt

Par @Martin dans le
Tags :

新建项目

配置项目属性

新建 UI (切换到下图序号 1 的标签, 在下面空白区右键, 选择新建窗体)

点击保存后, eric6 上出现了 first_window.ui 文件, 并且自动打开了 Qt 设计师.

关于如何使用 Qt 设计师 及 Qt 编程的基础知识参考我另一个系列笔记: 零基础QT入门

这个 first_window.ui 文件是 Qt 专用的, python 不认识它, 但是最终我们是通过 python 来运行程序, 所以需要把 *.ui 文件转化成 python 识别的格式, 方法很简单, 在 *.ui 文件上右键选择 编译窗体 (编译成功/失败会弹框提示).

切换回下图序号 1 的标签, 可以看到多了一个 Ui_first_window.py 文件 (以 Ui 开头, 标明这是从 Qt 的 Ui 文件转换来的)

这个文件有自测代码, 在 Eric 上按 F2 或者 点击下图中的图标, 就能打开刚才新建的窗体了.

if __name__ == "__main__":
    import sys
    app = QtGui.QApplication(sys.argv)
    Dialog = QtGui.QDialog()
    ui = Ui_Dialog()
    ui.setupUi(Dialog)
    Dialog.show()
    sys.exit(app.exec_())


虽然 Ui_first_window.py 能够被直接运行, 但它本质还是个 ui 层面的文件 (从它的命名就可以看出), 不应该被直接运行, 而从 OOA/D 的角度说, 它是属于 view 层, eric 提供了快捷的方法从 Ui_xxx.py 文件生成 controller 层的代码, 所有的在界面上的事件处理都在这层完成.

首先切换到下图序号 1 的标签, 在 first_window.ui 上右键, 选择 “生成对话框代码”

切换到下图序号 1 的标签, 可以看到又多了个文件

这个文件要做些修改.

去掉一个多余的点,将

from .Ui_first_window import Ui_Form


变成

from Ui_first_window import Ui_Form


添加测试代码:

if __name__ == "__main__":
    import sys
    from PyQt4.QtGui import QApplication

    app = QApplication(sys.argv)
    dlg = Dialog()
    dlg.show()
    sys.exit(app.exec_())


然后就可以按 F2 或者 点击工具栏上的图标, 就能打开刚才新建的窗体了.