本系列旨在教您如何利用PyQt5和Qt Designer建设简朴的图形用户界面。 PyQt5是一个Python模块,可让您快速开拓GUI应用措施。 它不只可以建设简朴的GUI,还可以很好地扩展到更巨大的GUI。
您将学到什么
本系列资料包含万象。 进修完本教程后,您将学到并领略以下内容:
如何利用Qt Designer建设GUI应用措施
事件驱动的编程如何事情
如何动态变动GUI的各个部门
如作甚可调解巨细的GUI配置机关
须要条件
这不是一个初学者教程,本系列也不会教Python语法。 强烈发起您熟悉面向工具的道理
中级编程常识
利用Python 3语法的履历
在本文中,我们将进修如何利用Python模块PyQt5建设一个很是根基的GUI应用措施。
什么是PyQt5
PyQt5是python模块,可让您很是快速地构建GUI应用措施。凡是将它与Tkinter举办较量,但有一些区别。主要的一项是开拓GUI的速度。 PyQt带有一个称为Qt-Designer的惊人东西,该东西是一个拖放界面,可按照您构建的GUI自动为您生成代码。这样可以更快地构建雅观的应用措施。另一个区别是Tkinter默认带有Python 3+,必需在个中安装PyQt。
安装PyQt5
开始利用PyQt5的第一步是安装它。
为此,我们将需要利用pip。
打开呼吁提示符,然后实验执行以下呼吁来安装PyQt5。
pip install pyqt5 pip install pyqt5-tools
建设一个根基的GUI应用
此刻我们已经安装了PyQt,我们可以开始利用它了。
打开您最喜欢的文本编辑器,凭据下面的代码举办操纵。
我们将从导入须要的模块和类开始。
from PyQt5 import QtWidgets from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel import sys
每当我们建设PyQt应用措施时,我们都需要界说一个QApplication。 这是我们可以安排窗口和小部件的处所。
接下来,我们可以抉择要在应用措施中利用什么。 就我而言,我从建设QMainWindow开始。 您可以将其视为一个容器,个中将容纳我们的所有小部件(按钮,标签等)。 在下面,您可以看到我为窗口指定了巨细和标题。
def main(): app = QApplication(sys.argv) win = QMainWindow() win.setGeometry(300,300,600,400) # 配置窗口x,y,宽度,高度 win.setWindowTitle("Linux公社")# 配置窗口标题
此刻,我们有了一个带有标题的窗口。 此刻该添加一些对象了。 为了我们的目标,请从小处开始并添加标签(在今后的教程中,我们将添加更多内容)。
要添加标签,我们将建设一个标签并汇报PyQt它应该去那边。 接下来,我们将在标签和位置上配置文本。
label = QLabel(win) label.setText("my first label") label.move(100, 100) # x, y从左上角开始。
假如此刻要看到标签( label),则需要显示窗口。
win.show()
这里是有关如安在pyqt窗口中安排项目标扼要说明。 在代表图形(0,0)中,或原点位于中间或左下角。 增加Y值会使点向上移动,增加X值会使点向右移动。 可是,在pyqt和很多GUI框架(0,0)中是右上方。 这意味着增加Y实际上会使点向下移动。
退出措施
为了确保我们所谓的clean exit(一个没有错误的退出),我们需要在函数底部添加以下行。
sys.exit(app.exec_())
完整代码
from PyQt5 import QtWidgets from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel import sys def main(): app = QApplication(sys.argv) win = QMainWindow() win.setGeometry(300,300,600,400) win.setWindowTitle("Linux公社") label = QLabel(win) label.setText("<A href='https://www.linuxidc.com/www.linxuidc.com.com'>Linux公社</a>") label.move(280, 150) label1 = QLabel(win) label1.setText("www.linuxidc.com") label1.adjustSize(); label1.move(260, 180) win.show() sys.exit(app.exec_()) main() # 确保挪用该函数
运行功效如下:
在下一个教程中,我们将接头按钮和事件。