PyQT5速成教程之Qt Designer介绍与入门

PyQT5速成教程之Qt Designer介绍与入门

本文主要介绍PyQT5速成班中Qt设计器的介绍和介绍。本文以PyCharm为例,通过示例代码和图片的结合,非常详细地向您介绍。对你的学习或者工作有一定的参考价值,有需要的朋友可以参考一下。

Qt Designer的介绍

用PyQt写UI界面,可以直接用代码实现,也可以用Qt Designer实现。Qt Designer的设计符合MVC架构,实现了视图和逻辑的分离,从而实现了开发的便捷性。Qt Designer中的操作方式非常灵活。您可以通过拖放控件来随时检查控件效果。的。Qt生成的ui文件(本质上是XML格式的文件)也可以转换成。用pyuic5工具复制文件。

Designer随PyQt5-tools包一起安装,其安装路径在Python安装路径Libsite-packagespyqt5-tools下。

要启动Qt Designer,可以直接进入上面的目录,双击designer.exe打开Qt Designer。或者将上述路径添加到环境变量中,在命令行输入designer打开;或者将其配置为在PyCharm中打开的外部工具。

下面以PyCharm为例,介绍一下PyCharm中Qt设计器的配置方法。

PyCharm中PyQt5工具配置

打开PyCharm,选择设置-工具-外部工具,点击左上角的绿色加号。

填写名称QtDesigner(方便后续使用,名称无所谓)。选择我们在程序中安装的PyQt5-tools下的designer.exe。工作目录选择我们的工作目录。然后点击OK,QtDesigner作为PyCharm的外部工具被添加。

然后添加PyUIC(UI转换工具),PyUIC的程序是Python.exe,在Python的安装目录的Scripts目录下,工作目录同样设置为我们的工作目录,参数用下面的代码填充:

-m pyqt 5 . UIC . py UIC $ FileName $-o $ FileName without text tension $。巴拉圭

最后,添加pyrcc对PyQt5的资源文件进行代码转换。具体配置同上,参数填写:

$ FileName $-o $ FileName without text tension $ _ RC . py

退出前,单击应用保存配置。配置完成后,PyCharm中将添加三个工具。

点击QtDesigner,打开QtDesigner界面。

Qt Designer界面简介

Qt Designer一打开,就会弹出下图所示的窗口。

创建一个新表单会给出五个模板,其中小部件和主窗口是最常用的。这里我们选择创建一个主窗口。

上图界面最左边的菜单是Widget Box,里面包含了PyQt5中所有的Widget组件。我们可以将按钮、视图和输入等组件从左边的小部件框拖放到中间的窗口。

点击表单-预览(快捷键是Ctrl R)来预览我们设计好的界面,或者使用Preview In在相应的主题样式中预览。

我们将一个标签和按钮拖放到主窗口中。

此时,您可以在主窗口右上角的对象检查器中看到放置的对象(标签和按钮)及其相应的Qt类。

以标签为例。此时,在我们单击主窗口中的标签或在对象检查器中选择标签后,我们可以在右侧查看一个区域,——属性编辑器。

其主要属性如下:

名字

意义

对象名称

对象名称

几何学

相应的宽度、高度和坐标

大小策略

控制大小策略

最小尺寸

最小宽度和高度

最大尺寸

最大宽度和高度

字体

脚本

光标

光标

PS:将minimumSize和maximumSize设置为相同值后,窗口大小就固定了。

右下角是资源浏览器,可以添加相应的图片素材作为标签或按钮等控件的背景图片。

Qt Designer的UI文件

Qt Designer保存的文件在。ui格式。

通过保存并用记事本和其他软件打开,我们可以看到。ui文件如下:

?xml版本=1.0 编码=UTF-8 ?

用户界面版本=4.0

类主窗口/类

widget class= QMainWindow name= main window

属性名称=几何

矩形

x0/x

y0/y

宽度800/宽度

身高600/身高

/rect

/属性

属性名=windowTitle

stringMainWindow/string

/属性

widget class= q widget name= central widget

widget class= q label name= label

属性名称=几何

矩形

x240/x

80日元/年

宽度72/宽度

高度15/身高

/rect

/属性

属性名称=文本

stringTextLabel/string

/属性

/小部件

widget class= q push button name= push button

属性名称=几何

矩形

x240/x

120日元/年

宽度93/宽度

高度28/身高

/rect

/属性

属性名称=文本

线按钮/字符串

/属性

/小部件

/小部件

widget class= QMenuBar name= menubar

属性名称=几何

矩形

x0/x

y0/y

宽度800/宽度

高度26/身高

/rect

/属性

/小部件

widget class= QStatusBar name=状态栏/

/小部件

资源/

连接/

/ui

从。用户界面文件的第一行我们便能看出,其实质是一个可扩展标记语言文件。用户界面文件中存放了在主窗口中的一切控件的相关属性。使用可扩展标记语言文件来存储用户界面文件,具有高可读性和移植性,因此我们可以方便地将。用户界面文件转换到。巴拉圭文件,从而使得我们可以使用计算机编程语言语言在设计的图像使用者界面上面编程。

将.ui文件转换为.py文件

将。用户界面文件转换到。巴拉圭文件很简单,在前面我们曾设置了pyuic5这个工具。如果你没有在皮查姆中设置这个工具,或者根本没有使用皮查姆,则可以到命令行中使用如下命令实现。用户界面到。巴拉圭的转换。

吡咯烷酮目标文件名。巴拉圭源文件名。用户界面

或者直接在皮查姆中,找到。用户界面文件,右键打开菜单找到外部工具-皮尤克。点击之后,我们在相应工程目录下会产生一个。巴拉圭文件。(注意,用户界面文件必须存放在我们的外部工具中设置的相应项目目录下)

转换完成之后,打开。巴拉圭文件。

# -*-编码:utf-8 -*-

#通过读取用户界面文件主窗口. ui 生成表单实现

#

#创建者:PyQt5 UI代码生成器5.10.1

#

#警告!在此文件中所做的所有更改都将丢失!

从PyQt5导入QtCore、QtGui、QtWidgets

Ui _主窗口类(对象):

def setupUi(自身,主窗口):

主窗口。设置对象名称(“主窗口”)

主窗口. resize(800,600)

self.centralwidget=QtWidgets .QWidget(主窗口)

自我。centralwidget。设置对象名称( centralwidget )

self.label=QtWidgets .QLabel(self.centralwidget)

self.label.setGeometry(QtCore .QRect(240,80,72,15))

自我。标签。设置对象名称(“标签”)

self.pushButton=QtWidgets .q按钮(self.centralwidget)

自我。按钮。设置几何图形(Qt核心部分.QRect(240,120,93,28))

自我。按钮。设置对象名称(“按钮”)

主窗口。setcentralwidget(self。centralwidget)

self.menubar=QtWidgets .菜单栏(主窗口)

自我。菜单栏。设置几何图形(Qt核心部分.QRect(0,0,800,26))

自我。菜单栏。设置对象名称(“菜单栏”)

主窗口。setmenubar(self。菜单栏)

self.statusbar=QtWidgets .QStatusBar(主窗口)

自我。状态栏。设置对象名称(“状态栏”)

主窗口。设置状态栏(自我。状态栏)

self.retranslateUi(主窗口)

QtCore .QMetaObject.connectSlotsByName(主窗口)

定义重新翻译界面(自身,主窗口):

_translate=QtCore .QCoreApplication.translate

主窗口。setwindowtitle(_ translate(主窗口,主窗口))

自我。标签。settext(_ translate(主窗口, TextLabel ))

自我。按钮。settext(_ translate(主窗口,按钮))

观察上述文件,可以看到如果不通过夸脱设计器来制作界面的话,我们将会一次次地调试程序,来讲按钮和标签等放在合适的位置,这将是极其痛苦的过程。而通过夸脱设计师,我们可以快速地制作UI,并生成计算机编程语言的代码,从而实现快速地用户界面的开发。

使用转换的.py文件

但是,此时运行这个转换后的Python文件无法显示任何窗口。因为这个Python文件只有定义主窗口及其控件的代码,所以没有程序入口的代码。为了坚持视图与逻辑分离的原则,我们将编写一个新的脚本来调用这个文件并创建一个窗口。

导入系统

来自PyQt5。QtWidgets导入QApplication,QMainWindow

从主窗口导入*

类MyWindow(QMainWindow,Ui_MainWindow):

def __init__(self,parent=None):

超级(MyWindow,self)。__init__(父级)

self.setupUi(self)

if __name__==__main__ :

app=QA application(sys . argv)

myWin=MyWindow()

myWin.show()

sys.exit(app.exec_())

通过上面的代码,我们继承了Ui_MainWindow类,用它的构造方法构造主窗口,定义程序的入口,通过创建QApplication对象来创建Qt窗口。运行结果如下:

通过以上操作,我们熟悉了Qt Designer的设计界面,以及实现业务逻辑的一般工作流程。通过这个工作流程,可以简化工作,提高速度。

通过将视图与业务逻辑分离,每次更改Qt Designer的UI设计时,都不需要重写代码,只需要对更改的部分稍作修改即可。

下节课,我们将继续讲解Qt Designer的使用。

关于PyQT5速成班中Qt Designer的介绍和入门的这篇文章到此为止。更多关于Qt Designer的介绍和介绍,请搜索我们之前的文章或者继续浏览下面的相关文章。希望大家以后能多多支持我们!

PyQT5速成教程之Qt Designer介绍与入门