PyQt 工作环境搭建

背景

之前使用过C++和QT开发具有GUI的小工具。考虑到人生苦短,决定转到使用PyQt,因此在mac上搭建PyQt工作环境。由于电脑上已经安装了QtCreator和Qt环境,网上也有很多教程因此不再赘述。

环境搭建

为了干净我选择使用virtualenv构建用于PyQt的虚拟环境。

$ virtualenv pyqtenv
$ source pyquenv/bin/activate
(pyqtenv)$ pip install PyQt5

似乎Qt Creator的python项目默认使用PySide2,但是在新建项目或者文件的时候有一个"Qt Module"的选项可以选择PyQt5或者PySide2。我选择PyQt5。

需要注意执行前在Qt Creator的项目选项中选择Python解释器,即选择所安装的虚拟环境目录。通常情况下QtCreator会发现并自动生成“pyqtenv virtual environment”,如果没有自动生成则需要在manage选项中手动添加并选择执行路径"/path_to_your_env/pyqtenv/bin/python"。

测试代码

由于人生苦短,我选择使用Qt Designer进行UI设计,如果是喜欢手撸代码的大佬请跳过以下内容。

在Qt Creator中选择新建Qt Designer Form得到ui文件,并通过Qt Designer设计界面。得到mainwindow.ui界面文件。此时需要注意要将界面文件导入py项目需要使用PyQt5自带的一个工具pyuic5编译得到UI类。(如果有更好的方法欢迎告诉我,我也不想这么麻烦)

$ source pyquenv/bin/activate
(pyqtenv)$ pyuic5 -o ui_mainwindow.py mainwindow.ui

之后就可以在Qt Creator中添加ui编译得到的py文件,一种方法是使用UI类作为基类之一并使用self.setupUI(self)。还有一种方法是使用UI类作为成员,即self.ui = Ui_MainWindow()。我选择前者,代码如下。

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from ui_mainwindow import Ui_MainWindow


class MainWindow(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.setupUi(self)


if __name__ == "__main__":
    app = QApplication([])
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

可以正常实现自己设计的UI界面就表明没啥问题了。

Lei Yang
Lei Yang
PhD candidate

My research interests include visual speech recognition and semantics segmentation.