202009-24 详解PyQt5信号与槽的几种高级玩法 信号(Signal)和槽(Slot)是Qt中的核心机制,也是在PyQt编程中对象之间进行通信的机制。本文介绍了几种PyQt5信号与槽的几级玩法。在Qt中,每一个QObject对象和PyQt中所有继承自QWidget的控件(这些都是QObject的子对象)都支持信号与槽机制。当信号发射时,连接的槽函数将会自动执行。在PyQt5中信号与槽通过object.signal.connect()方法连接。PyQt的窗口控件类中有很多内置信号,开发者也可以添加自定义信号。信号与槽具有如下... 继续阅读 >
202009-24 PyCharm Anaconda配置PyQt5开发环境及创建项目的教程详解 1安装pyqt51.1安装pyqt5pipinstallPyQt51.2安装pyqt5常用工具包pipinstallPyQt5-tools1.3新建main.py编写以下测试代码,验证是否安装成功importsysfromPyQt5.QtWidgetsimportQWidget,QApplicationapp=QApplication(sys.argv)widget=QWidget()widget.resize(640,480)widget.setWindowTitle("Hello,PyQt5!")widget.show()sys.exit(app.exec())1.4如果出现以下窗口,表示PyQt5库安装成功2指定QtDesigner和PyUIC... 继续阅读 >
202009-24 PyQt5 如何让界面和逻辑分离的方法 前言我们已经知道利用QtDesigner来设计界面,并通过Pycharm外部工具PyUIC将其转化成py源文件。不过由于要响应事件操作,往往会将相应的槽函数写在ui的py文件中,这样,界面和逻辑开发就混合在一起了,每一次的ui更新都会伴随着转换后py文件的槽函数的添加修改,及其不方便,造成效率低下。本例就来介绍如何将二者剥离。实例讲解设计ui我们通过Pycharm新建一个项目,并打开QtDesigner做一个简答的界面mainwindow.ui,在其上添加两个... 继续阅读 >
202009-24 pyqt5 QlistView列表显示的实现示例 1、简介QlistView类用于展示数据,它的子类是QListWIdget。QListView是基于模型(Model)的,需要程序来建立模型,然后再保存数据QListWidget是一个升级版本的QListView,它已经建立了一个数据储存模型(QListWidgetItem),直接调用addItem()函数,就可以添加条目(Item)QListView类中常用的方法如表方法描述setModel()用来设置View所关联的Model,可以使用Python原生的list作为数... 继续阅读 >
202009-24 PyQt5中向单元格添加控件的方法示例 1、简介pyqt列表单元格中不仅可以添加数据,还可以添加控件。我们尝试添加下拉列表、一个按钮试试。setItem:将文本放到单元格中setCellWidget:将控件放到单元格中setStyleSheet:设置控件的样式(QtStyleSheet)2、功能实现#-*-coding:utf-8-*-'''【简介】PyQT5中单元格里面放控件'''importsysfromPyQt5.QtWidgetsimport(QWidget,QTableWidget,QHBoxLayout,QApplication,QTableWidgetItem,QAbstractItemView,... 继续阅读 >
202009-24 PYQT5 vscode联合操作qtdesigner的方法 除了使用pycharm外,还可使用vscode来操作pyqt,方法如下:1.在vscode中配置相关的pyqt的相关根据自己实际情况修改第一项pyqt的路径2.创建一个文件夹,右键,最后一项可以创建一个新窗口创建的新窗口后缀为.ui右键中有以下四个选项,分别是创建一个新窗口,预览,编辑,编译产生py文件。我们在designer中设计完成后,通过最后一个编译生成文件。通过pycharm生成的为一个和designer一样的py文件,如上图中第二个文件。通过vscode... 继续阅读 >
202009-24 Pyqt5 关于流式布局和滚动条的综合使用示例代码 流式布局所谓流式布局指的是容器中的元素像流水一样,是可以浮动的,当元素一行或者一列占满的时候,它会自动流入到下一行或者下一列。pyqt5流式布局pyqt中采用流式布局的方法原理是,通过contentsMargins获取到子元素距离布局的上下左右宽度,然后我们将所有子元素进行遍历,如果它加上边距可以在一行放入的话,那么就放在一行内,如果不能,就放入到下一行,具体代码如下:m=self.contentsMargins()effective_rect=rect.adju... 继续阅读 >
202009-24 python GUI框架pyqt5 对图片进行流式布局的方法(瀑布流flowlayout) 流式布局流式布局,也叫做瀑布流布局,是网页中经常使用的一种页面布局方式,它的原理就是将高度固定,然后图片的宽度自适应,这样加载出来的图片看起来就像瀑布一样整齐的水流淌下来。pyqt流式布局那么在pyqt5中我们怎么使用流式布局呢?pyqt没有这个控件,需要我们自己去封装,下面是流式布局的封装代码。classFlowLayout(QLayout):def__init__(self,parent=None,margin=0,spacing=-1):super(FlowLayout,self).__init__... 继续阅读 >
202009-24 python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例 PyQt5动态(可拖动控件大小)布局控件QSplitter简介PyQt还提供了特殊的布局管理器QSplitter。它可以动态地拖动子控件之间的边界,算是一个动态的布局管理器,QSplitter允许用户拖动子控件的边界控制子控件的大小,并提供一个处理拖曳子控件的控制器在QSplitter对象中各子控件默认是横向布局的,可以使用Qt,Vertical进行垂直布局QSplitter类中常用的方法方法描述addWidget()将小控件添加... 继续阅读 >
202009-24 python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例 PyQt5布局控件QFormLayout简介QFormLayout是label-field式的表单布局,顾明思议,就是实现表单方式的布局,表单是提示用户进行交互的一种模式,主要有两列组成,第一列用于显示信息,给用户提示,一般叫做label域,第二列需要用户进行选择或输入,一般叫做field域,label与field的关系就是label关联fieldQFormLayout表单布局的使用实例importsysfromPyQt5.QtWidgetsimportQApplication,QWidget,QFormLayout,QLineEdit,QLa... 继续阅读 >
202009-24 python GUI库图形界面开发之PyQt5布局控件QGridLayout详细使用方法与实例 PyQt5布局控件QGridLayout简介QGridLayout(网格布局)是将窗口分割成行和列的网格来进行排列,通常可以使用函数addWidget()将被管理的控件(Widget)添加到窗口中,或者使用addLayout()函数将布局(layout)添加到窗口中,也可以通过addWIdget()函数对所添加的控件设置行数与列数的跨越,最后实现网格占据多个窗格QGridLayout类中常用的方法方法描述addWidget(QWidgetWidget,introw,... 继续阅读 >
202009-24 python GUI库图形界面开发之PyQt5布局控件QVBoxLayout详细使用方法与实例 PyQt5布局控件QVBoxLayout简介采用QVBoxLayout类,按照从上到下的顺序添加控件本节内容较少,演示两个实例,便于明白QVBoxLayout(垂直布局)的使用QVBoxLayout的正常使用实例importsysfromPyQt5.QtWidgetsimportQApplication,QWidget,QVBoxLayout,QPushButtonclassWinform(QWidget):def__init__(self,parent=None):super(Winform,self).__init__(parent)self.setWindowTitle("垂直布局管理例子")self.re... 继续阅读 >
202009-24 python GUI库图形界面开发之PyQt5布局控件QHBoxLayout详细使用方法与实例 PyQt5布局控件QHBoxLayout简介采用QBOXLayout类可以在水平和垂直方向上排列控件,QHBoxLayout和QVBoxLayout类继承自QBoxLayout采用QHBoxLayout类,按照从左到右的顺序来添加控件QHBoxLayout类中常用的方法如下方法描述addLayout(self,stretch=0)在窗口的右边添加布局,使用stretch(伸缩量)进行伸缩,伸缩量默认为0addWidget(self,QWidget.stretch,Qt.Alignmenyalihnme... 继续阅读 >
202009-24 python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例 PyQt5滚动条控件QScrollBar简介可以看到,前面介绍的几个窗口控件的共同点是新建一些窗口来装载更多的控件,而QScrollBar提供了另一种思路:这个控件提供水平的或垂直的滚动条,这样可以扩大当前窗口的有效装载面积,从而装载更多的控件QScrollBar类中常用的信号信号含义valueChanged当滑动条的值改变发射此信号sliderMoved当用户拖动滑块时发射此信号QScrol... 继续阅读 >
202009-24 python GUI库图形界面开发之PyQt5 MDI(多文档窗口)QMidArea详细使用方法与实例 PyQt5MDI(多文档窗口)QMidArea简介一种同时显示多个窗口的方法是,创建多个独立的窗口,这些独立的窗口被称为SDI(SingleDocumentInterface单文档界面),每个窗口都有自己的菜单系统,工具栏等,这需要占用很多资源MDI(MultipleDocumentInterface多文档界面)应用程序占用较少的内存资源,子窗口可以放在主窗口的容器中,这个容器控件被称为QMidAreaQMidArea控件通常占据在QMainWindow对象的中央位置,子窗口在这个区域是... 继续阅读 >
202009-24 python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例 PyQt5树形结构控件QTreeWidget简介QTreeWidget类根据预设的模型提供树形显示控件。QTreeWidget使用类似于QListView类的方式提供一种典型的基于item的树形交互方法类,该类基于QT的“模型/视图”结构,提供了默认的模型来支撑item的显示,这些item类为QTreeWidgetItem类。如果不需要灵活的“模型/视图”框架,可以使用QTreeWidget来创建有层级关系的树形结构。当把标准item模型结合QTreeView使用时,可以得到更灵... 继续阅读 >