编码
文章平均质量分 84
seniorwizard
这个作者很懒,什么都没留下…
展开
-
实战PyQt5: 080-打印输出
Qt为打印提供了广泛的跨平台支持。使用每个平台上的打印系统,Qt应用程序可以打印到连接的打印机,也可以跨网络打印到远程打印机。Qt的打印系统还支持PDF文件生成。Qt提供了一些类来支持打印机的选择和设置以及打印输出QPageSetupDialog,页面配置对话框,用于配置打印机上与页面相关的选项。 QPrintDialog, 用于指定打印机配置的对话框。 QPrintEngine,定义一个接口,用于QPrinter如何与给定的打印子系统交互。 QPrintPreviewDialog, 打印预览原创 2020-11-26 18:20:12 · 3119 阅读 · 0 评论 -
实战PyQt5: 079-如何彻底删除布局中一个部件
问题的提出在Qt的GUI布局中,有时候需要彻底删除一个部件,释放其占用的内存,比如在一个网格布局中,在不影响布局的情况下,需要删除其中的某个部件,我们调用removeWidget()函数将其从布局中删除,这种操作下,虽然在界面上看不到了被移除的部件,但这并不说明,部件已经被删除,所占用的内存已经被释放。实际上,这些部件并没有被删除,占用的内存并没有释放。在Python里,可以采用以下三种方法来达到目的。方法1:使用部件的deleteLater的函数在Qt中,所有继承自QObject的类都有一个d原创 2020-11-26 18:18:35 · 4714 阅读 · 4 评论 -
实战PyQt5: 078-撤销命令视图QUndoView
Qt的Undo框架介绍Qt的Undo框架是命令模式(Command pattern) 的实现,用于在应用程序中实现撤消/重做功能。命令模式基于这样的思想,即应用程序中的所有编辑都是通过创建命令对象的实例来完成的。命令对象将更改应用于文档并存储在命令堆栈中。此外,每个命令都知道如何撤消其更改以使文档恢复到其先前状态。只要应用程序仅使用命令对象来更改文档的状态,那么就可以通过向下遍历堆栈并依次调用每个命令来undo一系列命令。还可以通过向上遍历堆栈并在每个命令上调用redo来重做一系列命令。该框架包含四原创 2020-11-26 18:16:47 · 4511 阅读 · 0 评论 -
实战PyQt5: 077-列状视图QColumnView
QColumnView简介QColumnView类提供了Model-View框架中的列视图实现。 它在许多QListView中显示一个模型,可以看做是一个级联的列表视图。它是Qt模型-视图框架的组成部分。它实现了由QAbstractItemView类定义的接口,因此能够显示从QAbstractItemModel类派生出的模型所提供的数据。QColumnView部件是一种类似树形视图的视图,树形视图的层次结构是纵向排列的,父节点在上,子节点在下,同时兄弟节点也是上下排列,而在QColumnView中这原创 2020-11-26 18:15:07 · 3756 阅读 · 0 评论 -
实战PyQt5: 076-树状部件QTreeWidget
QTreeWidget简介QTreeWidget继承自QTreeView, 它提供与QTreeView列表视图类似的外观布局,它可以方便地添加和删除部件(QTreeWidget可以很方便地为条目设置诸如QPushButton, QLineEdit, QComboBox这样的部件)。QTreeWidget使用QTreeWidgetItem来管理条目。下面的代码演示了如何快速地构建一个部件视图treeWidget = QTreeWidget()treeWidget.setColumnCount(原创 2020-11-26 18:13:31 · 3866 阅读 · 2 评论 -
实战PyQt5: 075-树状视图QTreeView
QTreeView简介QTreeView实现对模型(Model)中的条目(ITEM)的树形显示。它是模型-视图(Model-View)类之一,是Qt模型-视图框架的组成部分。它实现了由QAbstractItemView类定义的接口,因此能够显示从QAbstractItemModel类派生出的模型所提供的数据。模型-视图体系结构确保树形视图的内容随着模型的更改而更新。其表头由QHeaderView类来创建。一个常见的例子就是使用QFileSystemModel提供的数据,显示成树形视图,用于浏览计算机原创 2020-11-26 18:12:02 · 14847 阅读 · 0 评论 -
实战PyQt5: 074-表格部件QTableWidget
QTableWidget简介QTableWidget继承自QTableView, 它提供与QTableView列表视图类似的外观布局,它可以方便地添加和删除部件(QTableWidget可以很方便地为条目设置诸如QPushButton, QLineEdit, QComboBox这样的部件)。QTableWidget使用QTableWidgetItem来管理条目。可以直接使用需要的行数和列数来创建表格部件tableWidget = QTableWidget(8, 4, self)或者不指定行原创 2020-11-26 18:10:23 · 2141 阅读 · 0 评论 -
实战PyQt5: 073-表格视图QTableView
QTableView简介QTableView是模型-视图(Model-View)框架类之一,是Qt模型-视图框架的组成部分,它实现了一个表格视图。在一个应用需要和一批数据进行交互,需要以表格形式输出这些信息的时候,QTableView是最合适的选择。QTableView实现了QAbstractItemView类定义的接口,因此它能够显示从QAbstractItemModel类派生的模型提供的数据。我们可以通过使用鼠标单击某个单元格或者使用箭头来导航表格视图中的单元格。QTableView拥有一个原创 2020-11-26 18:08:29 · 3576 阅读 · 3 评论 -
实战PyQt5: 072-列表部件QListWidget
QListWidget简介QListWidget继承自QListView, 它提供与QListView列表视图类似的外观布局,它可以方便地添加和删除部件(QListWidget可以很方便地为条目设置诸如QPushButton, QComboBox这样的部件)。QListWidget使用QListWidgetItem来管理条目,它可以设置成多选择模式。有两种方法可以将条目(Item)添加到列表中,可以使用列表部件作为其父窗口部件来创建条目,也可以先创建,然后再将其添加到列表中。如果列表中已经存在一些条原创 2020-11-25 10:13:12 · 4495 阅读 · 0 评论 -
实战PyQt5: 071-列表视图QListView
QListView简介QListView列表视图可以用来以列表的形式来展示数据。在Qt中使用Model-View结构来处理数据与视图之间的关系,Model负责数据的存取,View负责数据的展示, 二者之间数据的交互则是通过委托(delegate)来实现。QT提供了一些现成的models用于处理数据项:QStringListModel 用于存储简单的QString列表; StandardItemModel 管理复杂的树型结构数据项,每项都可以包含任意数据; QDirModel 提供本地文件系统原创 2020-11-25 10:11:09 · 2867 阅读 · 0 评论 -
实战PyQt5: 070-Model-View框架中的代理模型
在模型-视图框架中,单个模型提供的数据项可以被任意数量的视图共享,并且每个视图可能以完全不同的方式表示相同的信息。但是在实际情况中,应用程序通常需要提供对相同数据的不同视图显示(例如对项列表的不同排序视图)。 使用自定义视图和委托是提供相同数据的不同表示形式的有效方法。虽然执行排序和筛选操作作为视图的内部功能看起来是适当的,但是这种方法不允许多个视图共享这种可能代价高昂操作。其中每个视图必须显示根据最新处理操作组织的数据项,涉及在模型本身内进行排序的替代方法也会导致类似的问题。为了解决此问题,模型-原创 2020-11-25 10:09:13 · 1207 阅读 · 0 评论 -
实战PyQt5: 069-Model-View框架中的项视图拖放功能
模型-视图框架完全支持Qt的基本拖放操作,列表、树形和表格部件中的项可以在视图间拖动,数据可以以MIME类型的格式进行导入和导出Qt提供的标准视图自动支持在视图内部的拖放,其中的项可以被移动以改变显示顺序。在默认情况下,这些视图是不能进行拖放操作的,如果要使用拖放功能,除了项本身也是允许拖放,还需要开启视图的一些属性。使用项视图部件QListWidget,QTabWidget和QTreeWidget每一种类型的项都默认配置了一套不同的标识。比如,QListWidgetItem或QTreeWidg原创 2020-11-25 10:06:59 · 892 阅读 · 0 评论 -
实战PyQt5: 068-Model-View框架中的项视图部件
在Qt中,基于项的部件按照它们的用途进行了命名, QListWidget提供一个项的列表, QTreeWidget则显示多层次属性结构的部将项, QTableWidget提供表格样式的部件列表。列表部件QListWidget单层次列表项用一个QListWidget和一些QListWidgetItems来显示,列表部件的构造方式与其他部件相同: listWidget = QListWidget(self)列表项可以在构造的时候直接直接添加到列表组件中: ...原创 2020-11-25 10:03:34 · 718 阅读 · 0 评论 -
实战PyQt5: 067-在Model-View框架的项视图中处理选择操作
视图中的选择操作项视图类(Item View Class)中使用的选择模型提供了对项进行选择的一般描述。尽管用于提供选择的标准视图足以处理提供的项视图,但是选择模型允许创建专门的选择模型,以适合项模型和视图的要求。有关在视图中选择的项目的信息存储在QItemSelectionModel类的实例中。它以独立于任何视图的方式维护单个模型中项的模型索引,由于模型上可以有多个视图,因此可以在视图之间共享选择,从而允许应用程序以一致的方式显示多个视图。选择由选择范围组成。仅通过记录每个选定项目范围的开始和原创 2020-11-25 10:00:56 · 1273 阅读 · 0 评论 -
实战PyQt5: 066-Model-View框架中的Delegate类
委托类(Delegate)简介不同于MVC模式,模型-视图设计不包括用于管理与用户交互的完全独立的组件。通常,视图负责将模型数据呈现给用户,并负责处理用户输入。为了让输入的方式具有一定的灵活性,这种交互由委托来完成。这些部件在视图中提供输入功能,同时负责在某些视图中渲染单个项。在QAbstractItemDelegate类中定义了用于控制委托的标准接口。QQAbstractItemDelegate是所有委托类的抽象基类。委托通过实现paint()和sizeHint()函数来传递其自身的内容。但是,基原创 2020-11-25 09:58:05 · 2568 阅读 · 0 评论 -
实战PyQt5: 065-Model-View框架中的View类
视图(View)简介在模型-视图框架中,视图从模型中获得数据项,并将其显示给用户。数据显示的方式不必与模型所提供的数据表示方法相同,可以与底层存储数据项的数据结构完全不同。内容与显示的分离是通过由QAbstractItemModel提供的标准模型接口,由QAsbstractItemview提供的标准视图接口和用来表示数据项的模型索引共同实现的。视图负责管理从模型中读取的数据的显示外观布局。视图可以自己去渲染每个数据项,也可以利用委托来处理渲染和编辑。除了显示数据,视图也处理对数据项导航,参与有关于数原创 2020-11-25 09:56:00 · 1035 阅读 · 0 评论 -
实战PyQt5: 064-Model-View框架中的Model类
模型(Model)简介在Model-View框架中,模型(Model)为视图(View)和委托(Delegate)使用数据提供了标准接口。大多数情况下模型中并不真正存储数据(如果只有少量的数据,可以直接存在在模型里),它们只负责从诸如磁盘文件、数据库、网络通讯等获得源数据,并提供给视图,用户在视图中对数据进行修改,然后视图再通过模型更新源数据。在Qt中,模型类的标准接口通过QAbstractItemModel类来定义。在Qt中内置了多种标准模型。不管数据在底层以何种数据结构存储,所有QAbstrac原创 2020-11-23 18:29:24 · 2602 阅读 · 2 评论 -
实战PyQt5:063-了解Model-View框架
什么是Model-View框架在学习QListView, QListWidget, QTreeView, QTreeWidget, QTableView, QTableWidget这几个控件之前,我们需要了解一个比较烧脑的概念,这就是大名鼎鼎的模型/视图框架。模型-视图(Model-View) 框架最早出现在SmallTalk语言中,其名称为Model-View-Controller(简称MVC), 其中Model负责维护数据(如一个管理数据库),View负责显示和用户交互(如各种显示交互界面),原创 2020-11-23 18:27:32 · 2223 阅读 · 3 评论 -
实战PyQt5: 062-向导对话框QWizard
QWizard简介向导(Wizard,在macOS上也称为助手)是一种特殊的输入对话框,由一系列页面组成。向导的目的是引导用户逐步进行某个操作过程。QWizard继承了QDialog并表示一个向导,QWizard中的每一个页面都是有一个QWizardPage(一个QWidget的类)。可以直接使用这些类来创建自己的向导,也可以将他们子类化以实现更多控制,来创建自己的更有特点的向导。QWizard常用方法有:addPage(): 将给定的页面添加到向导,并返回页面的ID; setPage():原创 2020-11-23 18:25:48 · 2419 阅读 · 7 评论 -
实战PyQt5:61进度对话框QProgressDialog
QProgressDialog简介QProgressDialog 进度对话框,向用户提示程序中当前任务的进度信息,用以提示当然任务正在进行,并按百分比显示进度。对话框提供了一个取消按钮,用以向用户提供终止操作的机会。进度对话的一个常见问题是很难知道何时使用它们;操作在不同的硬件上花费的时间不同。QProgressDialog提供了一个解决这个问题的方法:它估计操作所花费的时间(基于步骤的时间),并且只有当该估计值超出minimumDuration() (默认为4秒)时才显示。使用setMinim原创 2020-11-23 18:23:58 · 3533 阅读 · 0 评论 -
实战PyQt5: 060-输入对话框QInputDialog
QInputDialog简介在GUI应用中,经常有一些简单的输入信息需要交互,这时候可以使用QInputDialog来快速完成我们的工作,而不必创建一个新的对话框来实现。QInputDialog控件是一个标准对话框,由一个文本框和两个按钮(ok和cancel)组成。当用户单击ok或enter键后,在父窗口可以收集通过QInputDialog控件输入的信息。在QInpuTDialog控件中可以输入数字,字符串或列表中的选项。QInputDialog常用方法有:getInt(): 从控件中获得标原创 2020-11-23 18:22:04 · 1759 阅读 · 1 评论 -
实战PyQt5: 059-颜色对话框QColorDialog
QColorDialog简介QColorDialog控件是一个常用的颜色选择对话框,继承自QDialog,是Qt内建的标准对话框之一。当程序中需要设置某一控件或控件外字体颜色时,我们使用该控件,对颜色进行选择、设置。颜色对话框界面有以下几种功能:从基础颜色中选择需要的颜色; 从色谱图中选择所需颜色; 将喜欢的颜色添加到常用颜色中; 使用取色器在屏幕上取色; 微调三原色数值。QColorDialog常用方法有:getColor(): 打开一个颜色选择对话框,如果点击‘确定’或等效按钮原创 2020-11-23 18:14:58 · 1896 阅读 · 0 评论 -
实战PyQt5: 058-字体选择对话框QFontDialog
QFontDialog简介QFontDialog控件是一个常用的字体选择对话框,继承自QDialog,是Qt内建的标准对话框之一。它可以让用户选择所显示的文本的字体类型,字号大小、样式和格式。通过QFontDialog控件可以在界面中对文本的字体样式进行精确设定。使用QFontDialog类的静态方法getFont(),可以从字体选择对话框中选择文本的显示字号大小样式和格式。QFontDialog常用方法有:getFont(): 打开字体对话框,如果点击确定按钮,则返回True和选择的字体;原创 2020-11-20 09:47:36 · 803 阅读 · 0 评论 -
实战PyQt5: 057-文件对话框QFileDialog
QFileDialog简介在前面的文章中,在保存和打开文件的时候,我们已经多次使用了QFileDialog,本文对QFileDialog相关功能做一详叙述。QFileDialog控件提供了允许用户选择文件或者目录的对话框。它继承自QDialog, QFileDialog允许用户在文件系统上遍历来选择一个或多个文件或目录。QFileDialog在打开文件时可以使用文件过滤器,用于显示指定扩展名类型的文件,它也可以设置使用QFileDialog打开文件时的起始目录。使用QFileDialog最简单的原创 2020-11-20 09:45:14 · 3856 阅读 · 0 评论 -
实战PyQt5: 056-消息框QMessageBox
QMessageBox简介QMessageBox是一种通用的弹出式对话框,用于显示消息,允许用户通过单击不同的标准按钮对消息进行反馈,每个标准按钮有一个预定义的文本,角色和数(十六进制数)。QMessageBox类提供了许多常用的弹出式对话框,如提示。警告,错误,询问,关于,等会话框,这些不同类型的QMessageBox对话框只是显示的图标不同,其他的功能是一样的。QMessageBox常用方法有:information(): 弹出消息对话框; warning(): 弹出警告对话框; q原创 2020-11-20 09:43:30 · 1555 阅读 · 0 评论 -
实战PyQt5: 055-对话框QDialog
QDialog简介对话框是GUI应用中一个重要组成部分。在GUI应用中,对话框常用于输入修改数据,选择文件、字体、颜色,参数配置,消息显示等交互操作。QDialog类是所有对话框窗口类的的基类,一个对话框应用类一般都从QDialog类或者其子类派生。QDialog常用来完成一个交互任务或者作为应用的顶层窗口使用。对话框一般分为模态对话框和非模态对话框两种表现形式。模态对话框在关闭它之前,不能与同一个应用程序的其他窗口进行交互,它是阻塞式调用方式,模态对话框通过调用exec()函数实现,使用模原创 2020-11-20 09:41:27 · 1354 阅读 · 0 评论 -
实战PyQt5:054-堆栈布局QStackedLayout
QStackedLayout简介在前面的文章中,我们认识了QBoxLayout(QHBoxLayout, QVBoxLayout)、QGridLayout和QFormLayout,在本文中我们介绍PyQT中一个新的布局管理家族成员QStackedLayout。前面的三种布局都是在同一个平面上对窗口部件进行布局,这三种布局在Qt Designer中,可以交互操作。但是QStackedLayout并未出现在Qt Desinger中,因此我们只能在代码中调用QStackedLayout。QStacke原创 2020-11-20 09:39:28 · 2730 阅读 · 0 评论 -
实战PyQt5:053-堆栈窗口QStackedWidget
QStackedWidget简介QStackedWidget,顾名思义,就是将部件存放在堆栈中,每个部件都有索引,可以指定索引来显示某一层的部件。QStackedWidget类提供了多页面切换的布局,一次只能看到其中的一个页面,QStackedWidget可用于创建类似于QTabWidget提供的用户界面。QStackedWidget常用方法有:addWidget(): 添加一个页面,并返回页面的索引; count(): 获取页面的数量; currentIndex(): 获取当前页面的索引值原创 2020-11-20 09:37:31 · 2374 阅读 · 2 评论 -
实战PyQt5: 052-停靠窗口控件QDockWidget
QDockWidget简介在很多桌面应用软件中,比如Qt的C++ IDE集成开发环境Qt Creater, 宇宙第一集成开发环境Visual Studio等工程软件,都使用了停靠窗口布局,这样做有一个显而易见的好处,就是用户可以自由组合界面,定义自己喜欢的布局方式。Qt提供QDockWidget停靠窗口控件来实现浮动窗口的功能,QDockWidget停靠窗口控件一般使用在QMainWindow中,它是放置在QMainWindow中的中央窗口小部件周围的停靠窗口小部件区域中的次要窗口。一个典型的QMa原创 2020-11-20 09:33:38 · 3410 阅读 · 0 评论 -
实战PyQt5: 051-多窗口文档控件QMdiArea
MDI应用程序在传统的GUI应用程序设计中,有一类称作多文档接口(Multi-Document Interface, 简称MDI)应用程序,在MDI程序中,一个显示区域维护多个窗口文件(就像Windows在一个屏幕上维护多个应用程序窗口一样)。PyQt为设计MDI应用程序提供了支持,通过控件QMdiArea提供了一个可以同时显示多个文档的区域。本质上说,QMdiArea就像是多文档窗口的窗口管理器。例如,它将它所管理的窗口绘制在它上面,并且以级联或者平铺的方式放置这些窗口。通常情况下,QMdiAre原创 2020-11-20 09:31:50 · 4313 阅读 · 1 评论 -
实战PyQt5: 050-选项卡控件QTabWidget
QTabWidget简介在GUI应用软件中,多页面的切换的使用范围十分广泛,在操作过程中,用户使用鼠标点击不同的标题栏就可以方便展示不同页面的内容,众多界面共用一块显示区域,在有限的就显示区域中可以很方便地位用户显示更多的信息。Qt为多页面切换的实现提供了一个专门的控件QTabWidget, 它可以实现在同一区域中自由切换不同页面的内容,该控件是一个容器类控件,并提供友好的页面切换方式。QTabWidget常用方法有:addTab(): 添加一个标签; insertTab(): 在指定位置原创 2020-11-20 09:30:11 · 3882 阅读 · 3 评论 -
实战PyQt5: 049-滚动区域控件QScrollArea
问题的提出在GUI应用中,常常会遇到这样的问题,比如显示一幅大的图像,但显示区域有限,不能完整地显示整个图像,或者能展示界面的区域有限,但是界面中需要展现的控件、内容却很多,在限定的区域内无法全部展示。这个时候我们就需要区域是可以水平和(或)垂直方向可以滚动,以实现对整个图像或者所有控件的浏览。在PyQt中,提供滚动区控件QScrollArea来实现这个功能。QScrollArea简介QScrollArea滚动区域控件类提供了关于另一个窗口的滚动的视图,一个滚动区域通常用来显示一个子窗口。如果子原创 2020-11-20 09:28:20 · 6839 阅读 · 1 评论 -
实战PyQt5: 048-工具箱控件QToolBox
QToolBox简介QToolBox控件提供了一个可进行一列选项卡操作方式,在每个选项卡内可包含不同的控件布局。QToolBox将选项卡一个一个地显示,当前项目显示在当前选项卡下方。每个选项卡在选项卡列中都有一个索引位置。一个选项卡的项目是一个QWidget。QToolBox的每个选项都有一个itemText(),一个可选的itemIcon(),一个可选的itemToolTip()和一个widget()。选项的属性可以通过setItemText(),setItemIcon()和setItemTool原创 2020-11-19 18:32:38 · 3529 阅读 · 0 评论 -
实战PyQt5: 047-分组框控件QGroupBox
QGroupBox简介分组框控件QGroupBox为对界面中的控件分组控制提供了支持,分组框通常带有一个边框和一个标题栏,同时也可以提供键盘快捷键,作为容器部件来使用,在其中可以布置各种窗口部件。分组框的标题通常在上方显示,其位置可以设置为靠左、居中、靠右、自动调整这几种方式之一。布局时可以用作一组控件的容器,但需要注意的是,内部必须使用布局控件(如QBoxLayout)进行布局。QGroupBox不仅可以将布局分成一个个区域显示,而且还能起到隔绝的作用,在PyQt布局中,通常一个界面中的所有QRa原创 2020-11-19 18:30:42 · 11904 阅读 · 3 评论 -
实战PyQt5: 046-框架外形控件QFrame
QFrame简介QFrame是一个继承制QWidget的控制框架外形的类,主要是用来控制一些边框样式,、例如凸起、凹下、阴影、线宽等,它既可以直接使用,也可以作为需要边框控制的控件的基类。QFrame常用方法:setFrameShape(): 设置QFrame类窗口的边框,其参数见QFrame.Shape枚举值; setFrameShade(): 设置QFrame类窗口的阴影,其参数见QFrame.Shade枚举值; setFrameStyle(): 同时设置边框和阴影,参数为QFrame.原创 2020-11-19 18:28:21 · 4148 阅读 · 0 评论 -
实战PyQt5: 045-添加资源文件
添加资源文件在使用PyQt进行图形界面开发的时候不免要用到一些外部资源,比如图片,qss配置文件等。在前面代码中,遇到这类问题,我们使用绝对路径的方式来解决,这种方式,本身有其不方便之处(比如,调整图片路径后,对应代码需要修改,代码的维护性变差), 还有在app进行打包发布的时候,通常图片资源却不方便处理,app安装的时候还必须确保app可以正确地找到这些资源,还有出于保护一些资源文件的出发,不便于直接发布图片,qss资源等等。为解决这些问题,我们可以使用Qt官方提供的工具将这些资源文件编译成二进制原创 2020-11-19 18:25:55 · 2594 阅读 · 2 评论 -
实战PyQt5: 044-状态栏QStatusBar
QStatusBar简介在使用QMainWindow窗口对象作为主窗口的应用中,在主窗口底部常常保留一个水平条,这个水平条由状态栏 QStatusBar来实现,其主要功能用来显示应用中永久或临时的状态信息。QStatusBar常用方法:showMessage(): 在状态栏显示一条指定时长的临时信息; clearMessage(): 清除正在显示的临时信息; addWidget(): 在状态栏中添加给定的窗口控件对象; addPermanentWidget(): 在状态栏中永久添加给定的窗原创 2020-11-19 18:24:12 · 3159 阅读 · 0 评论 -
实战PyQt5: 043-工具栏QToolBar
QToolBar简介QToolBar工具条是一个可移动面板,在其中常包含文本按钮,图标或者其他控件。缺省情况下它位于菜单条下方,但可以移动它,在窗口上下左右不同的位置停靠。QToolBar通常和QMenuBar结合使用,用不同的交互动作完成相同的工作(因为它们可指向相同的QAction)。QToolBar常用方法:addAction(): 添加具有文本或者图标的工具按钮; addSeperator(): 分组显示工具条上的按钮; addWidget(): 添加工具条中按钮以外的控件; se原创 2020-11-19 18:22:12 · 2189 阅读 · 0 评论 -
实战PyQt5: 042-了解和运用QAction
QAction简介在一个典型的GUI程序中,在用户界面上,常常使用不同的操作方式来完成同一个事情,例如在一个应用中创建一个新文件,可以使用菜单条里的"文件"-->"新建"菜单项来完成,也可以点击工具栏上的"新建文件"图标(为一个QToolButton),或者是使用快捷键来完成这个动作,PyQt提供QAction类来封装用户需要执行的动作,这样不管是菜单栏,抑或是工具条栏,还是快捷键,都可以独立地和和这个动作相关联,这样就很好地做到了界面操作方式和具体行为动作的分离,代码之间的耦合性减少,可维护性良原创 2020-11-19 18:20:14 · 14576 阅读 · 2 评论 -
实战PyQt5: 041-菜单控件QMenu
QMenu简介在一个GUI应用中,菜单项都是一个随处都会用到的一个控件项。在一个应用中菜单常以以下三种方式出现:主窗口顶端应用主菜单,在PyQt中的QMainWindow中包含一个菜单条,该菜单条就是用于设置系统的主菜单。 点击一个按钮,弹出一个菜单,在PyQt中QToolButton常用这种方式弹出一个菜单。 在一个控件上击鼠标右键,弹出一个菜单。QMenu常用方法有:addMenu(): 在菜单中添加一个新的菜单对象,该菜单对象可以继续添加子菜单; addAction(): 在菜单栏原创 2020-11-19 18:18:10 · 6599 阅读 · 0 评论