pyqtpyqt入门


备注

PyQt是一种Python绑定到流行的跨平台Qt应用程序框架,通常用于制作图形应用程序。 PyQt4支持Qt4,PyQt5支持Qt5。它运行在Qt(Windows,OS X,Linux,iOS和Android)支持的所有平台上。绑定实现为一组Python模块和类。

有关更多信息,请访问PyQt网站

基本的应用程序

以下示例显示了一个基本的主GUI窗口,其中包含标签窗口小部件,工具栏和使用PyQt4的状态栏。

import sys
from PyQt4 import QtGui


class App(QtGui.QApplication):
    def __init__(self, sys_argv):
        super(App, self).__init__(sys_argv)
        self.build_ui()

    def build_ui(self):
        # build a main GUI window
        self.main_window = QtGui.QMainWindow()
        self.main_window.setWindowTitle('App')
        self.main_window.show()

        # add a label to the main window
        label = QtGui.QLabel('Label')
        self.main_window.setCentralWidget(label)

        # add a toolbar with an action button to the main window
        action = QtGui.QAction('Toolbar action', self)
        toolbar = QtGui.QToolBar()
        toolbar.addAction(action)
        self.main_window.addToolBar(toolbar)

        # add a status bar to the main window
        status_bar = QtGui.QStatusBar()
        status_bar.showMessage('Status bar')
        self.main_window.setStatusBar(status_bar)


if __name__ == '__main__':
    app = App(sys.argv)
    sys.exit(app.exec_())
 

一个简单的拖放示例

通过3个简单的步骤制作简单的GUI应用程序。

1.设计

打开Qt Creator ,创建一个新项目并进行设计。将结果保存为.ui 文件(此处: mainwindow.ui )。

小部件的示例

2.生成相应的.py文件

现在,您可以从上一步生成的.ui文件中创建.py文件。在命令行中输入以下内容:

$ pyuic4 mainwindow.ui -o GUI.py
 

如果上面的行成功运行,则会创建一个GUI.py 文件。

3. Python代码

您可以在GUI.py 文件中添加自己的代码(例如信号和插槽),但最好将它们添加到新文件中。如果您想要更改GUI, GUI.py 文件将被覆盖。这就是为什么在大多数情况下使用另一个文件来添加功能更好。

我们将新文件main.py

from PyQt4 import QtGui
import sys
import GUI # Your generated .py file


class MyApp(QtGui.QMainWindow, GUI.Ui_MainWindow):
    def __init__(self, parent=None):
        super(ExampleApp, self).__init__(parent)
        self.setupUi(self)

        # Connect a button to a function
        self.btn_run.clicked.connect(self.run)

    def run(self):
        # Write here what happens after the button press
        print("run")


if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    form = ExampleApp()
    form.show()
    app.exec_()
 

现在您可以运行main.py 并查看GUI。

产量

你好,世界

这个基本代码将使用PyQt4启动一个“Hello world”GUI窗口:

import sys
from PyQt4 import QtGui

# create instance of QApplication
app = QtGui.QApplication(sys.argv)

# create QLabel, without parent it will be shown as window
label = QtGui.QLabel('Hello world!')
label.show()

# start the execution loop of the application
sys.exit(app.exec_())
 

这是使用PyQt5的相同代码。

import sys
from PyQt5 import QtWidgets

# create instance of QApplication    
app = QtWidgets.QApplication(sys.argv)

# create QLabel, without parent it will be shown as window
label = QtWidgets.QLabel('Hello world!')
label.show()

# start the execution loop of the application
sys.exit(app.exec_())
 

安装PyQt4

建议的安装方法

Windows :下载并运行二进制安装文件

Linux(Debian) :在命令行中运行此命令:

$ apt-get install python-qt4 pyqt4-dev-tools qt4-designer
 

OS X :在命令行中运行此命令:

$ brew install pyqt
 

手动安装

您也可以从此处手动下载源代码,然后自行安装和配置。

测试您的安装

如果正确安装pyqt,您将能够运行pyuic4 命令。如果安装正确,您将看到以下错误:

$ pyuic4 
Error: one input ui-file must be specified
 

安装完成

您现在已经安装了PyQt4库。 PyQt4旁边还安装了两个有用的应用程序:

  • Qt Designer:用于图形界面“拖放”设计的应用程序(创建.ui 文件),
  • pyuic4:可以将.ui 文件转换为Python代码的命令行应用程序。