pyqt5入门
- 格式:pdf
- 大小:3.14 MB
- 文档页数:67
感谢你的委托,下面我将开始为你写一篇关于“pyqt5 designer 手册”的文章。
1. 简介在本篇文章中,我们将深入探讨“pyqt5 designer 手册”的知识和技巧,希望通过全面的评估和深度的讨论,帮助你更好地理解和应用这一工具。
2. 什么是pyqt5 designer?pyqt5 designer是一个强大的用户界面设计工具,它允许开发人员以图形化界面来设计和布局应用程序的用户界面。
通过简单的拖放操作,开发人员可以快速创建各种界面元素,并通过属性编辑器进行定制化设置,从而实现快速开发和美化用户界面的目的。
3. 深入使用pyqt5 designer在深入探讨pyqt5 designer的使用过程中,我们将从简单到复杂、由浅入深地介绍其各项功能和操作方法。
我们将从界面布局和基本控件的使用开始,逐步介绍如何添加窗口、按钮、文本框等基本控件,并设置它们的属性和信号槽连接。
4. 高级功能和技巧在探讨基本功能的基础上,我们还将介绍一些高级功能和技巧,如自定义控件的添加和使用、界面布局的优化、信号槽的灵活运用等。
通过这些技巧的学习和实践,你将能够更灵活地应用pyqt5 designer来创建独特和强大的用户界面。
5. 个人观点和总结在文章的我将共享一些我对pyqt5 designer的个人观点和理解。
我认为,pyqt5 designer是一个十分实用和简便的界面设计工具,它不仅能够帮助开发人员快速创建漂亮的用户界面,还能够通过其丰富的功能和灵活的操作方式,满足开发过程中的各种需求。
总结起来,通过本篇文章的阅读和实践,相信你将能够全面、深入和灵活地掌握pyqt5 designer的使用方法,并将其应用到自己的项目中去。
希望本篇文章能够为你对pyqt5 designer的学习和应用提供有价值的帮助。
至此,对于“pyqt5 designer 手册”的探讨就告一段落了,希望这篇文章能够满足你的需求。
感谢阅读!6. pyqt5 designer的优势和特点pyqt5 designer作为一个用户界面设计工具,具有许多优势和特点。
PythonPyQt5Pycharm环境搭建及配置详解(图⽂教程)PyQt5相关安装python 版本 python 3.6.31、安装PyQt5执⾏命令: pip install pyqt52、安装PyQt5-tools执⾏命令:pip install pyqt5-tools3、校验是否成功执⾏如下代码# FileName : PyQtDemo.py# Author : Adil# DateTime : 2018/2/1 11:07# SoftWare : PyCharmfrom PyQt5 import QtWidgets, QtGuiimport sysapp = QtWidgets.QApplication(sys.argv)window = QtWidgets.QWidget();window.show()sys.exit(app.exec_())弹出如下界⾯即可。
Pycharm相关配置1、添加external Tools打开settings->Tools->External Tools点击“+”2、添加QtDesigner如下图设置。
2、添加PyUIC如下图设置。
Parameters:-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py3、新建⼀个PyQt demo,创建⼀个项⽬如下图如下图打开QtDesigner打开Qt界⾯如下图如图选择创建⼀个Main Window如图可以根据需要添加⾃⼰的组件如下图保存如下图,使⽤PyUIC将hello.ui⽂件转换为hello.py查看hello.py如下图新建主程序main.py,导⼊hello# FileName : main.py# Author : Adil# DateTime : 2018/2/1 12:00# SoftWare : PyCharmimport sysimport hellofrom PyQt5.QtWidgets import QApplication, QMainWindowif __name__ == '__main__':app = QApplication(sys.argv)MainWindow = QMainWindow()ui = hello.Ui_MainWindow()ui.setupUi(MainWindow)MainWindow.show()sys.exit(app.exec_())执⾏main.py弹出如下窗⼝ok。
pyqt5使用手册PyQt5是一个Python库,用于创建桌面应用程序和GUI。
以下是一些关于如何使用PyQt5的基本指南:1. 安装PyQt5:首先,您需要安装PyQt5库。
您可以使用pip命令在命令行中安装它。
例如,要安装最新版本的PyQt5,请运行以下命令:```shellpip install pyqt5```2. 创建应用程序实例:在PyQt5中,您需要创建一个应用程序实例,这是应用程序的主要控制中心。
您可以使用QApplication类来创建应用程序实例。
例如:```pythonimport sysfrom import QApplicationapp = QApplication()```3. 创建窗口:PyQt5提供了一组用于创建GUI窗口的类。
最常见的类是QMainWindow和QWidget。
您可以使用这些类来创建窗口,并在其中添加控件和布局。
例如:```pythonfrom import QMainWindow, QLabel, QVBoxLayoutwin = QMainWindow()label = QLabel("Hello, PyQt5!")layout = QVBoxLayout()(label)(layout)```4. 处理事件和信号:PyQt5使用事件和信号来响应用户操作和执行应用程序逻辑。
您可以使用QEvent类来处理事件,并使用信号槽机制来处理事件和信号。
例如:```pythonfrom import pyqtSignal, QObjectclass Example(QObject):signal = pyqtSignal(str)def __init__(self):super().__init__()("Hello, PyQt5!")```以上是一些使用PyQt5的基本指南。
当然,还有更多高级的特性和用法等待您去探索,包括但不限于布局管理、控件、对话框、菜单、工具栏、状态栏等。
pyqt5 python 案例1. PyQt5入门案例:创建一个简单的窗口在PyQt5中,可以使用QWidget类创建一个简单的窗口。
以下是一个简单的示例代码,可以创建一个空白的窗口。
```pythonimport sysfrom PyQt5.QtWidgets import QApplication, QWidgetif __name__ == '__main__':app = QApplication(sys.argv)window = QWidget()window.setWindowTitle('简单窗口')window.setGeometry(100, 100, 300, 200)window.show()sys.exit(app.exec_())```2. PyQt5案例:添加按钮和标签在PyQt5中,可以使用QPushButton和QLabel类来创建按钮和标签。
以下是一个示例代码,创建一个窗口,其中包含一个按钮和一个标签。
```pythonimport sysfrom PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLabeldef button_clicked():label.setText('按钮被点击了!')if __name__ == '__main__':app = QApplication(sys.argv)window = QWidget()window.setWindowTitle('按钮和标签')window.setGeometry(100, 100, 300, 200)button = QPushButton('点击我', window)button.setGeometry(100, 50, 100, 30)button.clicked.connect(button_clicked)label = QLabel('标签', window)label.setGeometry(100, 100, 100, 30)window.show()sys.exit(app.exec_())```3. PyQt5案例:创建一个简单的登录窗口在PyQt5中,可以使用QLineEdit、QPushButton和QMessageBox类来创建一个简单的登录窗口。
PyQt5官⽅教程+帮助⽂档+模块功能汇总写在开头笔者⾃学PyQt5的过程中,在⽹上发现了不少友好的新⼿⼊门教程,⽐如:但是学习PyQt5的最好⽅法是阅读官⽅⽂档 + ⾃⼰动⼿实践,笔者将分享,翻译部分内容,并整理汇总常⽤组件。
pyqt5 简介PyQt5是绑定Python的Qt应⽤程序框架。
Qt是⼀组C++库和开发⼯具,包括平台独⽴抽象图形⽤户接⼝、⽹络、线程、正则表达式、SQL数据库、SVG、OpenGL、XML、⽤户和应⽤程序设置、定位和定位服务、短程通信(NFC和蓝⽛)、上⽹、3D动画、图表、3D数据可视化和应⽤商店接⼝。
这些功能由1000多个类实现,这些类被封装成⼀组模块。
PyQt5⽀持Windows、Linux、UNIX、Android、MacOS和iOS平台。
PyQt5的主页是< >,在这⾥能找到最新的稳定版本、当前的开发版本和帮助⽂档的最新版本。
当前版本为PyQt5 v5.14.0(2020.02.26) PyQt5是使⽤SIP绑定⽣成器构建的。
为了构建和使⽤PyQt5,必须安装SIP。
PyQt4⽀持Qt的早期版本。
pyqt5包含的模块PyQt5的如下表所⽰:(按字典序排列)模块名功能Enginio⽤于访问Qt云服务的类(不推荐)QAxContainer访问ActiveX控件和COM对象的类Qt其他模块的合并Qt3DAnimation在模拟中⽀持动画的类Qt3DCore⽀持近实时仿真系统的核⼼类Qt3DExtras预先构建的元素,与Qt3D⼀起使⽤Qt3DInput处理使⽤Qt3D时⽤户输⼊的类Qt3DLogic启⽤帧同步的类Qt3DRender启⽤2D和3D呈现的类QtAndroidExtras特定于Android的附加类QtBluetooth⽀持设备之间蓝⽛连接的类QtChart⽀持2D图表创建的类QtCore Qt核⼼类QtDBus使⽤D-Bus协议⽀持IPC的类QtDataVisualization⽀持3D数据可视化的类QtDesigner允许使⽤Python扩展Qt设计器的类QtGui widget和OpenGL gui共有的核⼼类QtHelp⽤于创建和查看可搜索⽂档的类QtLocation⽤于创建映射应⽤程序的类QtMacExtras特定于macOS和iOS的附加类QtMultimedia多媒体内容、摄像机和收⾳机的类QtMultimediaWidgets提供附加的多媒体相关⼩部件和控件的类QtNetwork核⼼⽹络类QtNetworkAuth⽹络授权类QtNfc⽀持设备之间NFC连接的类QtOpenGL在传统窗⼝⼩部件中呈现OpenGL的类(不推荐)QtPositioning从卫星、wifi等获取定位信息的类QtPrintSupport实现打印的类QtPurchasing⽀持从应⽤商店购买应⽤程序的类模块名功能QtQml与QML语⾔集成的类QtQuick使⽤Python代码扩展QML应⽤程序的类QtQuickWidgets⽤于在传统⼩部件中呈现QML场景的类QtRemoteObjects⽤于在进程或系统之间共享QObject的API的类QtSensors⽤于访问系统硬件传感器的类QtSerialPort⽤于访问系统的串⾏端⼝的类QtSql与SQL数据库集成的类QtSvg提供对SVG⽀持的类QtTest⽀持GUI应⽤程序单元测试的类QtWebChannel⽤于Python和HTML/JavaScript之间的点对点通信的类QtWebEngine⽤于将QML Web引擎对象与Python集成的类QtWebEngineCore Web引擎核⼼类QtWebEngineWidgets基于Chromium的web浏览器QtWebKit基于WebKit2的web浏览器(已弃⽤) QtWebKitWidgets基于WebKit1的web浏览器(已弃⽤)QtWebSockets实现WebSocket协议的类QtWidgets⽤于创建经典桌⾯样式ui的类QtWinExtras特定于Windows的附加类QtX11Extras特定于X11的其他类QtXml⽀持SAX和DOM到XML接⼝的类QtXmlPatterns⽀持其他XML技术的类sip绑定开发⼈员和⽤户的实⽤程序uic⽤于处理Qt设计器创建的⽂件的类写在最后⽹上资源整理与总结⽔平参差不齐,官⽅⽂档永远是最可靠的伙伴。
pyqt5&python Gui入门教程(1)第一个窗口(1)第一个窗口和代码详细注释:from PyQt5 import QtWidgets#从PyQt库导入QtWidget通用窗口类class mywindow(QtWidgets.QWidget):#自己建一个mywindows类,以class开头,mywindows是自己的类名,#(QtWidgets.QWidget)是继承QtWidgets.QWidget类方法,# 定义类或函数不要忘记':'符号,判断语句也必须以':'结尾!def __init__(self):#def是定义函数(类方法)了,同样第二个__init__是函数名# (self)是pyqt类方法必须要有的,代表自己,相当于java,c++中的this #其实__init__是析构函数,也就是类被创建后就会预先加载的项目super(mywindow,self).__init__()#这里我们要重载一下mywindows同时也包含了QtWidgets.QWidget的预加载项import sysapp = QtWidgets.QApplication(sys.argv)#pyqt窗口必须在QApplication方法中使用,#要不然会报错 QWidget: Must construct a QApplication before a QWidget windows = mywindow()# 生成过一个实例(对象), windows是实例(对象)的名字,可以随便起!# mywindows()是我们上面自定义的类windows.show()#有了实例,就得让他显示这里的show()是QWidget的方法,用来显示窗口的!sys.exit(app.exec_())#启动事件循环pyqt5&python Gui入门教程(2)第一个窗口(2)上图是第一篇教程,下面的显示效果都一样,我们来看看有什么不同1、类的名字、实例的名字都换了,2、多了一个if __name__ == "__main__": 以及下面的代码缩进了,层次改变了1、我们把结尾的5句代码,单独建立了一个函数2、然后直接调用函数3、注意两个def的缩进,第一个def缩进了代表是在class里面,第二个和class平齐,则是在外面。
pyqt5&python Gui入门教程(1)第一个窗口(1)第一个窗口和代码详细注释:from PyQt5 import QtWidgets#从PyQt库导入QtWidget通用窗口类class mywindow(QtWidgets.QWidget):#自己建一个mywindows类,以class开头,mywindows是自己的类名,#(QtWidgets.QWidget)是继承QtWidgets.QWidget类方法,# 定义类或函数不要忘记':'符号,判断语句也必须以':'结尾!def __init__(self):#def是定义函数(类方法)了,同样第二个__init__是函数名# (self)是pyqt类方法必须要有的,代表自己,相当于java,c++中的this #其实__init__是析构函数,也就是类被创建后就会预先加载的项目super(mywindow,self).__init__()#这里我们要重载一下mywindows同时也包含了QtWidgets.QWidget的预加载项import sysapp = QtWidgets.QApplication(sys.argv)#pyqt窗口必须在QApplication方法中使用,#要不然会报错 QWidget: Must construct a QApplication before a QWidget windows = mywindow()# 生成过一个实例(对象), windows是实例(对象)的名字,可以随便起!# mywindows()是我们上面自定义的类windows.show()#有了实例,就得让他显示这里的show()是QWidget的方法,用来显示窗口的!sys.exit(app.exec_())#启动事件循环pyqt5&python Gui入门教程(2)第一个窗口(2)上图是第一篇教程,下面的显示效果都一样,我们来看看有什么不同1、类的名字、实例的名字都换了,2、多了一个if __name__ == "__main__": 以及下面的代码缩进了,层次改变了1、我们把结尾的5句代码,单独建立了一个函数2、然后直接调用函数3、注意两个def的缩进,第一个def缩进了代表是在class里面,第二个和class平齐,则是在外面。
python中qt5用法Qt是一个用于开发GUI应用程序的跨平台框架,它提供了丰富的库和工具,使得开发者可以轻松地创建美观、易用的应用程序。
Qt5是Qt框架的最新版本,提供了许多新功能和改进,使得开发者可以更加高效地开发应用程序。
一、安装Qt5库要使用Python中的Qt5,首先需要安装Qt5库。
可以通过安装PyQt5包来实现。
PyQt5是一个Python绑定库,它提供了Qt5库的大部分功能,使得Python开发者可以轻松地使用Qt5库来开发GUI应用程序。
在Linux上,可以使用包管理器来安装PyQt5。
例如,在Ubuntu 上可以使用以下命令来安装PyQt5:```shellsudoapt-getinstallpython3-pyqt5```在Windows上,可以从PyQt5官方网站下载安装程序,并按照说明进行安装。
二、创建GUI应用程序使用PyQt5创建GUI应用程序非常简单。
首先,需要导入PyQt5模块,并创建一个QWidget对象作为主窗口。
然后,可以使用布局、控件和事件处理函数来构建GUI界面。
以下是一个简单的示例程序,它创建一个包含一个标签和一个按钮的主窗口:```pythonimportsysfromPyQt5.QtWidgetsimportQApplication,QWidget,QLabel,QPus hButtonclassExample(QWidget):def__init__(self):super().__init__()self.initUI()definitUI(self):self.setGeometry(300,300,300,200)self.setWindowTitle('PyQt5Example')label=QLabel('Hello,PyQt5!',self)label.move(100,100)btn=QPushButton('Quit',self)btn.clicked.connect(QApplication.instance().quit)btn.move(100,40)self.show()if__name__=='__main__':app=QApplication(sys.argv)ex=Example()sys.exit(app.exec_())```这个程序创建了一个包含一个标签和一个按钮的主窗口。
PyQt5 QAction用法1. 概述QAction是PyQt5中的一个类,它提供了在菜单、工具栏和快捷键等地方创建动作的功能。
通过QAction,我们可以在应用程序中添加各种操作,如打开文件、保存文件、复制粘贴等。
在本文中,我们将详细介绍PyQt5 QAction的用法,包括创建QAction对象、设置图标和文本、添加到菜单和工具栏以及处理触发事件等。
2. 创建QAction对象要创建一个QAction对象,我们可以使用QAction类的构造函数。
构造函数的参数可以分为两类:文本相关参数和父级参数。
例如:action = QAction("打开", self)上述代码创建了一个名为”打开”的QAction对象,并将其设置为self(通常是主窗口)的子级。
3. 设置图标和文本通过调用QAction对象的setIcon()方法,我们可以为该动作设置一个图标。
图标可以是一个文件路径或者是一个QtGui.QIcon对象。
例如:action.setIcon(QIcon("open.png"))上述代码将名为”open.png”的图标文件设置为该动作的图标。
如果想要同时设置动作的文本和图标,我们可以使用setText()方法来设置文本。
例如:action.setText("打开")上述代码将动作的文本设置为”打开”。
4. 添加到菜单和工具栏要将QAction添加到菜单或工具栏中,我们可以使用QMenu或QToolBar类的addAction()方法。
例如,假设我们有一个名为fileMenu的QMenu对象,我们可以将动作添加到该菜单中:fileMenu.addAction(action)上述代码将动作添加到fileMenu菜单中。
同样地,如果我们有一个名为toolbar的QToolBar对象,我们可以使用addAction()方法将动作添加到工具栏中:toolbar.addAction(action)上述代码将动作添加到toolbar工具栏中。
pyqt5教程QGraphicsScene及QGraphicsView使用基础PyQt5是一套用于创建用户界面的Python库。
它是对Qt图形用户界面框架的Python封装,可以用于开发各种桌面应用程序。
其中,QGraphicsScene和QGraphicsView是PyQt5中用于创建图形界面的关键组件。
本教程将介绍使用QGraphicsScene和QGraphicsView的基础知识。
QGraphicsScene是一个容器,用于管理图形对象的显示和交互。
它可以包含多个图形项,并提供了一些方法和信号来管理这些图形项。
在QGraphicsScene中,每个图形项都由QGraphicsItem类的实例表示。
QGraphicsItem有几个重要的子类,包括QGraphicsRectItem、QGraphicsEllipseItem和QGraphicsPixmapItem等。
这些子类可以用来显示矩形、椭圆和像素图等不同类型的图形。
QGraphicsView是一个用于显示场景的可视化窗口。
它提供了一个视口,能够在其中显示QGraphicsScene的内容。
QGraphicsView还提供了一些方法和信号来控制窗口的视图和交互。
使用QGraphicsScene和QGraphicsView的基本步骤如下:1. 创建一个QGraphicsScene对象,并设置其大小和参数。
```pythonscene = QtWidgets.QGraphicsScenescene.setSceneRect(0, 0, 800, 600)```2. 创建一个QGraphicsView对象,并将QGraphicsScene设置为其场景。
```pythonview = QtWidgets.QGraphicsView(scene)view.setWindowTitle("My Graphics View")view.show```3.在场景中添加图形项。
pyqt5&python Gui入门教程(1)第一个窗口(1)第一个窗口和代码详细注释:from PyQt5 import QtWidgets#从PyQt库导入QtWidget通用窗口类class mywindow(QtWidgets.QWidget):#自己建一个mywindows类,以class开头,mywindows是自己的类名,#(QtWidgets.QWidget)是继承QtWidgets.QWidget类方法,# 定义类或函数不要忘记':'符号,判断语句也必须以':'结尾!def __init__(self):#def是定义函数(类方法)了,同样第二个__init__是函数名# (self)是pyqt类方法必须要有的,代表自己,相当于java,c++中的this #其实__init__是析构函数,也就是类被创建后就会预先加载的项目super(mywindow,self).__init__()#这里我们要重载一下mywindows同时也包含了QtWidgets.QWidget的预加载项import sysapp = QtWidgets.QApplication(sys.argv)#pyqt窗口必须在QApplication方法中使用,#要不然会报错 QWidget: Must construct a QApplication before a QWidget windows = mywindow()# 生成过一个实例(对象), windows是实例(对象)的名字,可以随便起!# mywindows()是我们上面自定义的类windows.show()#有了实例,就得让他显示这里的show()是QWidget的方法,用来显示窗口的!sys.exit(app.exec_())#启动事件循环pyqt5&python Gui入门教程(2)第一个窗口(2)上图是第一篇教程,下面的显示效果都一样,我们来看看有什么不同1、类的名字、实例的名字都换了,2、多了一个if __name__ == "__main__": 以及下面的代码缩进了,层次改变了1、我们把结尾的5句代码,单独建立了一个函数2、然后直接调用函数3、注意两个def的缩进,第一个def缩进了代表是在class里面,第二个和class平齐,则是在外面。
可以看到显示效果是一样,我们却有很多办法去实现。
知识点:1、if __name__ == "__main__": 是代表如果这个文件是主程序这运行下面的代码,如果是被别的程序文件调用的话,则运行下面的代码。
2、__init__ 方法在类的一个对象被建立时,马上运行。
这个方法可以用来对你的对象做一些你希望的初始化。
注意,这个名称的开始和结尾都是双下划线。
3、生成实例(对象)必须以类名(),别忘记了()4、类中的函数(方法)必须有self,是代表属于这个实例(对象)本身持有的,而外部定义的函数则不需要。
整个流程;先导入PyQt5中的QtWidgets通用窗口库,通过继承QtWidgets.QWidget来定义自己的窗口。
然后生成一个对象(实例化),再调用QWidget的show()方法来显示这个窗口。
pyqt5&python Gui入门教程(3)第一个窗口(3)frist.py 文件second.py文件这是两个文件,第一个文件和之前一样我们只录入的上半截,第二个文件我们保留了下半截,也就是将一个文件分成两个文件,从second.py文件调用frist.py来显示窗口的目的。
注意second.py 文件加入了一句from frist import fristwindows 即导入first.py的fristwindows类是不是很熟悉,将自己的文件作为库导入进来,然后调用即可!虽然都是显示窗口,我们这里已经学习了很多办法来显示它。
代码区别也是很大,关键是灵活运用。
知识点:1、库,这个例子是将我们自己的文件作为库导入,也可以称为自定义库。
注意不用.py结尾,pyqt会自动识别。
2、frist.py的firstwindows的代码就是显示一个窗口用的,但是没有将它实例化,并在QApplication中运行。
所以运行frist.py是不会显示任何窗口的。
我们将显示firstwindows的方法写在了第二个文件中,达到逻辑与界面分离的效果。
3、QApplication相当于main函数,也就是整个程序(有很多文件)的主入口函数。
对于一个Gui程序必须至少有一个这样的一个实例来让程序运行。
4、最后一句是调用sys库的exit退出方法,退出条件(参数)是app.exec_()也就是整个窗口关闭。
其实入门没什么难度,只是对一些基本概念的掌握和了解,本人也是菜鸟,写的不是很好,只是希望能和更多有兴趣爱好的新手一起交流学习。
PyQt5&python Gui入门教程(4)初探Qt Designer 设计师网上很多教程都是代码,对于新手看起来就很头疼,pyqt同样为我们提供了Qt designer来设计窗口界面,用起来也非常方便,对于新手我们应该善用它,虽然做出来的界面不那么华丽,但至少可以做出个像样的窗口来。
打开PyQt5的Qt Designer,会自动弹出新建窗体对话框,对于我们最常用的就是Widget通用窗口类,还有个MainWindows顾名思义主窗口。
PyQt5的Widget被分离出来,似乎用来替代Dialog,并将Widget放入了QtWidget模块(库)中,PyQt4是QtGUI。
这是一个Widget和MainWindows,从界面上看起来没有什么,只是MainWindows默认添加了菜单栏、工具栏和状态栏等。
默认左边是控件栏,提供了很多空间类,我们可以直接拖放到widget中看到效果,点窗体--预览(Ctrl+R)每个空间都有自己的名称,提供不同的功能,比如常用的按钮、输入框、单选、文本框等等,右边是对窗口及控件的各种调整、设置、添加资源(列如:图片)、动作。
还可以直接编辑Qt引以为豪的信号槽(signal和slot)。
有了Qt Designer使得我们在程序设计中更快的能开发设计出程序界面,避免了用纯代码来写一个窗口的繁琐,同时PyQt支持界面与逻辑分离,这对于新手来说无疑是个最大的福音,当然要做出华丽的界面还是要学代码的。
至少Qt Designer为我们提供了一些解决方法,另外我们也可以通过Qt Designer生成的代码来学习一些窗口控件的用法。
PyQt5&python Gui入门教程(5)Qt Designer窗口布局Layouts(1)Qt Designer窗口布局Layouts提供了四种布局方法,他们是:Vertical Layout 纵向布局Horizontal Layout 横向布局Grid Layout 栅格布局Form Layout 在窗体布局中布局前三种是我们经常会用到的,我们将布局Layouts拖动到窗体上会有红色框来显示,Layout的一些属性可以通过属性编辑器来控制,一般包括:上下左右边距间隔,空间之间间隔等。
在我们使用布局之前,我们得对层次要有个了解,在程序设计中一般用父子关系来表示。
当然有过平面设计经验的童鞋对分层应该有所了解,这里我们还需要将层分成层次。
其实就像python中规定的代码缩进量代表不同层次的道理差不多。
从对象查看器中我们可以方便的看出窗体(Form)--布局(Layout)--控件(这里是PushButton按钮)之间的层次关系。
Form窗口一般作为顶层显示,然后使用Layout将控件按照我们想要的方式规划开来。
这里要注意一下,Qt Designer设计出来的文件默认为ui文件,里面包含的类css布局设计语言,如果想要查看代码我们还需要将它转换(编译)成py文件,我们可以使用一条DOS命令来完成D:\Python33\Lib\site-packages\PyQt5\pyuic5.bat mian.ui -o frist.py更实用的转换命令可以将当前文件夹下所有ui转换成py文件:for /f "delims=" %%i in ('dir /b /a-d /s *.ui') doD:\Python33\Lib\site-packages\PyQt5\pyuic5.bat %%i -o %%i.pyPyQt支持用LoadUi方法直接加载ui文件,当然我们通过转换后可以方便学习PyQt窗体控件的源代码。
下一篇我们来分析一下Qt Designer布局的源代码PyQt5&python Gui入门教程(6)Qt Designer窗口布局Layouts(2)首先我们来看一下,我们创建一个空白Widget窗体,Qt Designer都为我们做了些什么?嗯,比我们第一个窗体,多了那么几行代码,默认转换后的py文件还不能直接显示出效果,下面我们慢慢学习。
这里我们只加入一个栅格布局,然后......Qt Designer居然给我们多了6行代码其实Qt Designer生成的代码(编译后)还是非常给力的,至少比我们自己写的规范多了。
这些代码或许不需要我们自己写,但至少我们能看得明白。
其中最主要的两句代码是:self.gridLayoutWidget = QtWidgets.QWidget(Form)self.gridLayout = QtWidgets.QGridLayout(self.gridLayoutWidget)从Qt Designer中可以看到栅格布局默认创建了两个对象,QtWidgets.QWidget 和QtWidgets.QGridLayout。
注意(Form)和(self.gridLayoutWidget)参数,这里可以理解为放置到相应的对象里面。
Qt Designer果然做的比我们想想的多,下面我们再通过简化后的代码来对比一下,可能跟容易理解一些。
注意:Qt Designer首先会见栅格布局作为一个widget放入窗体,并且不影响窗体大小。
栅格布局一般作为顶层布局使用,所以简化后的代码有个self.setLayout (self.gridLayout)同时Qt Designer会加入一些基本设置,默认信号槽声明,国际化语言支持等等,确实比我们自己写的要好的多。
当然我们需要了解其中的奥秘。
左边是Qt Designer设计效果,右边是显示效果。
再来个稍微复杂点的知识点:记得在Qt Designer中窗体的layout层次可以通过对象查看器来查看,layout 的一些设置可以通过属性编辑器来修该。