PyQt是基于跨平台的图形界面C++开发工具Qt加Python包装的一个GPL软件(GPL是GNU General Public License的缩写,是GNU通用公共授权非正式的中文翻译),Qt基于Qt Designer提供了图形设计界面,通过绘制的图形界面使用PyUIC可以将图形界面转成Python代码文件(具体步骤请参考<第15.6节 PyQt5安装与配置>),这样图形界面设计和处理逻辑分离,可以快速实现应用. 本文解释的计算器由Qt Designer完成界面设计,并将鼠标点击事件与槽函…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 表格部件为应用程序提供标准的表格显示工具,在表格内可以管理基于行和列的数据项,表格中的最大数据项数为总行数和总列数的乘积,另外在表格中可以设置水平和垂直标题. 表格部件对应类为QTableWidget ,QTableWidget 表格部件中的项类型为QTableWidgetItem类.QTableWidget 从QTableView派生的子类,内置默认模型,如果表格展现的应用需要使用自己…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 树部件(Tree Widget)是Qt Designer中 Item Widgets(Item-Based)部件中提供的一个Model/View便利部件,对应类为QTreeWidget类. QTreeWidget类从QTreeView派生(继承关系请参考<PyQt学习随笔:Qt中Model/View相关的主要类及继承关系>),是一个Model/View便利类,提供一个树状管理数据的界面…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 列表部件(List Widget)对应类QListWidget,是从QListView派生的类,用于显示一些数据的列表,不支持多层级数据的显示.QListWidget显示的数据项都通过QListWidgetItem构建. QListWidget是一个便利类,它提供了一个类似于QListView提供的列表视图,具有一个用于添加和删除项的接口.QListWidget使用一个内部模型来管理列表…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 在前面的订阅专栏<第十九章.Model/View开发:QTableView的功能及属性>及公开博文<第15.24节 PyQt(Python+Qt)入门学习:Model/View架构中QTableView的作用及属性详解>中介绍了QTableView的主要功能及属性,本节来使用QTableView与QStandardItemModel配套来开发一个简单的Excel文件展示程序…
老猿Python博文目录 老猿Python博客地址 一.属性的作用 dragDropOverwriteMode属性用于控制视图的拖放行为,如果其值为True,则视图中选定的数据将在拖拽数据放下时被覆盖,如果其值为False,则拖拽的数据将作为新项插入.当DropAction对应动作为拷贝时,上述拖放的源数据保持不变,而DropAction对应动作为移动数据时,上述拖放的源数据会被删除. 默认值为False,如子类QListView和QTreeView就是这样.而在QTableView子类中,该属…
老猿Python博文目录 老猿Python博客地址 在<PyQt(Python+Qt)学习随笔:QAbstractItemView的dragEnabled和dragDropMode属性的关系>介绍了视图中dragDropMode属性对dragEnabled属性的影响,实际上除了dragDropMode属性对dragEnabled属性有影响之外,对acceptDrops属性也有类似的影响. 经老猿验证测试如下场景: 当dragDropMode设置为DragOnly.DragDrop.Intern…
一.引言 Qt Designer中的Buttons部件包括Push Button(常规按钮.一般称按钮).Tool Button(工具按钮).Radio Button(单选按钮).Check Box(复选框).Command Link Button(命令链接按钮)和Dialog Button Box(对话框按钮盒)六种类型,这六种类型的Buttons部件,都是QWidget的直接或间接子类,同时除了Dialog Button Box外,其他五种都是QAbstractButton的直接子类. 本节…
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://goldlion.blog.51cto.com/4127613/834075 引子 由于 AnimatePacker的打包发布用的是Qt动态编译,且为了给没有Qt环境的朋友使用,会集成一些dll,所以造成了一些不便.(策划和美术都喜欢一个exe的东西吧= =) 个人对Qt静态编译不怎么感冒,大约是因为比较折腾,所以一直没弄. 近几年各种虚拟化工具迅猛发展,易用性和稳定性越来越好.…
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 在<PyQt(Python+Qt)学习随笔:QWidget部件的palette属性以及ColorGroup.colorRole的用途和含义>和<PyQt(Python+Qt)学习随笔:使用QColorDialog.getColor交互设置部件的颜色>介绍了QWidget部件的palette属性.以及在应用中请用户确认颜色的方法.一般情况下,我们对部件的颜…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 容器部件就是可以在部件内放置其他部件的部件,在Qt Designer中可以使用的容器部件有如下: 容器类部件中的TabWidget选项卡组件是一个带一到多个选项卡栏和对应页面区域的组件,对应类QTabWidget,每个选项卡栏对应一个单独的页面(窗口),用于显示与每个选项卡相关的内容.默认情况下,选项卡栏显示在页面区域上方,但可以设置组件的tabPosition属性来设置不同的选项卡栏位…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 容器部件就是可以在部件内放置其他部件的部件,在Qt Designer中可以使用的容器部件有如下: GroupBox分组框是一个对多个部件进行编组的框架容器,用于将多个围绕同一主题的部件在分组框内编组,便于对这些子部件进行排列编组和布局管理. 二.分组框主要属性 GroupBox分组框主要属性包括标题(title属性).键盘快捷键和复选框(checkable属性),标题可以设置对齐方式(a…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 Scroll Area提供了一个呈现在其他部件上的可滚动区域视图,滚动区域用于显示框架内的子部件的内容.实际上在Designer中设计部件的部署时,需要提供滚动区域的部件应该放在Scroll Area部件上. 下图是将一个标签文本放到滚动区域之上: 下图是该标签对应区域: 可以看到标签的区域在滚动区域之内. 二.滚动区域相关的概念 在学习滚动区域时,老猿才开始以为很简单,属性才两个,结果…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 在<PyQt(Python+Qt)学习随笔:视图中类QAbstractItemView的dragDropOverwriteMode属性>中介绍了dragDropOverwriteMode属性,当时老猿使用并在其中提到了测试发现这个属性的覆盖存在问题,并反复测试也未找到问题的原因,这几天老猿找到了最开始的一个可以覆盖写的测试程序,与不能覆盖写的代码进行了反复比对,最后发现不是视图属性的设置问题,而…
老猿Python博文目录 老猿Python博客地址 在<PyQt(Python+Qt)学习随笔:QAbstractItemView的dragEnabled属性的困惑>中,老猿觉得dragEnabled没有什么作用,但原因没有弄明白. 今天无意中跟踪一个测试数据时,将dragEnabled属性的值取出来观察了一下,发现原来不是dragEnabled属性不起作用,而是dragDropMode设置时改变了dragEnabled属性的取值,具体来说: 当dragDropMode设置为DragOnly.…
老猿Python博文目录 老猿Python博客地址 按照老猿规划的章节安排,信号和槽之后应该介绍事件,但事件在前面的随笔<PyQt(Python+Qt)实现的GUI图形界面应用程序的事件捕获方法大全及对比分析>已经进行了详细介绍,为了章节的完整性在此将相关内容复制过来. 一. 概述 PyQt的图形界面应用中,事件处理类似于Windows系统的消息处理.一个带图形界面的应用程序启动后,事件处理就是应用的主循环,事件处理负责接收事件.分发事件.接收应用处理事件的返回结果,在程序中捕获应用关注的事件…
老猿Python博文目录 老猿Python博客地址 在通过PyQt构建的图形界面中进行拖放,要成功进行拖放需要注意: 视图相关属性需要支持拖放,具体相关属性请参考<PyQt(Python+Qt)学习随笔:QAbstractItemView的dragEnabled属性的困惑>和<PyQt(Python+Qt)学习随笔: QAbstractItemView的dragDropMode属性> 老猿使用TableView和ListView验证,视图中提供的拖放动作是通过鼠标左键按下触发,但当…
autoFillBackground属性可以确认部件背景是否自动填充,如果自动填充,Qt会在调用Paint事件之前填充部件的背景.使用的颜色由部件调色板中的QPalette.window 角色定义(关于调色板请参考<PyQt(Python+Qt)学习随笔:Qt Designer中部件的调色板palette属性和字体font属性设置>). 此外,除非设置了WA_OpaquePaintEvent 或 WA_NoSystemBackground属性,否则窗口始终使用QPalette.Window对应…
accessibleDescription和accessibleName属性都是用于残疾人辅助阅读的,这两个属性都有国际化属性(关于国际化请参考<PyQt(Python+Qt)学习随笔:Qt Designer中部件与国际化有关的设置translatable. disambiguation和comment含义>),这2个属性都必须进行本地化语言处理. accessibleName 这是辅助阅读中显示的部件的名称,对于大多数小部件,无需设置此属性,因为Qt会调用部件相关属性显示,如按钮将显示按钮的…
toolTip属性 toolTip属性设置部件的toolTip提示信息,toolTip提示信息在鼠标放到控件上会浮动出一个小框显示提示信息.默认情况下,仅显示活动窗口子部件的toolTip,可以通过在窗口对象设置Qt.WA_AlwaysShowToolTips属性来改变,但不能是需要显示tooTip的部件对象中设置. 如果要控制tooTip显示的行为(如控制显示位置),可以重写部件的event()方法捕获事件类型为QEvent.ToolTip的事件. 缺省值为空,可以通过toolTip()和se…
在Qt Designer中的每个部件,除了设置部件的位置(geometry)之外,还可以指定部件的大小策略sizePolicy.部件的sizePolicy用于说明部件在布局管理中的缩放方式,当部件没有在布局管理器中时,该设置无效. 在理解sizePolicy前,建议参考<PyQt(Python+Qt)学习随笔:Qt Designer中部件的三个属性sizeHint缺省尺寸.minimumSizeHint建议最小尺寸和minimumSize最小尺寸>先理解部件的缺省大小.建议最小尺寸.最小大小三…
老猿Python博文目录 老猿Python博客地址 dragEnabled属性用于控制视图是否支持拖拽,可以通过dragEnabled().setDragEnabled(bool enable)进行属性访问和设置. dragEnabled属性很简单,但老猿采用QListView和QTableView反复验证后,发现该属性实际上没有什么作用,在View内是否能拖放是由dragDropMode属性来控制的,如dragEnabled为False,dragDropMode为DragDrop,在view内…
老猿Python博文目录 老猿Python博客地址 一.概述 selectionMode属性用于控制view中操作选择数据项的模式,用于控制用户是否可以选择一个或多个数据项,以及在多个数据项选择中,选择是否必须是一个连续的范围. 二.QAbstractItemView.SelectionMode取值含义 selectionMode属性的类型为枚举类型枚举类型 QAbstractItemView.SelectionMode,对应取值及含义如下: 以上取值中,常用值为SingleSelection…
老猿Python博文目录 老猿Python博客地址 Qt Designer中QAbstractScrollArea包括三个属性,分别是horizontalScrollBarPolicy.verticalScrollBarPolicy 和sizeAdjustPolicy. horizontalScrollBarPolicy.verticalScrollBarPolicy 这两个属性是用于控制QAbstractScrollArea滚动条出现机制的,其类型为枚举类型Qt.ScrollBarPolicy…
在Qt Designer中可以预先定义标准按钮,相关支持的标准按钮请见<PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox的StandardButtons标准按钮>. 这些标准按钮的显示文字Qt已经缺省内置了,如果要改变这些文字,可以通过按钮的setText方法,但在改变前需要通过button方法找到需要修改的按钮. 案例 在Qt Designer中定义了一个名为buttonBox的QDialogButtonBox,在其下选择定义了所有标准按钮,如图:…
在Qt Designer中可以预先定义标准按钮,相关支持的标准按钮请见<PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox的StandardButtons标准按钮>. 除了标准按钮,QDialogButtonBox允许增加自定义按钮.如果要在标准按钮之外增加自定义按钮,可以使用addButton方法. 案例 在Qt Designer中定义了一个名为buttonBox的QDialogButtonBox,在其下选择定义了所有标准按钮,如图: 该界面生成代码…
一.引言 QDialogButtonBox本身只提供4种信号,分别是accepted.rejected.clicked和helpRequested,在<PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox的accepted.rejected和helpRequested信号>介绍了这些按钮中有部分会产生相同的accepted或rejected信号,有部分不会产生accepted或rejected信号,那么怎么确认点击了按钮只能通过clicked信号. 在&…
在Qt Designer中,可以在界面中使用QDialogButtonBox来配置一组按钮进行操作,Qt中为QDialogButtonBox定义了一组常用的标准按钮,可以在Designer中直接在StandardButtons属性中指定使用,配置界面如图: StandardButtons标准按钮属性与枚举类型QDialogButtonBox.StandardButton类型相对应,具体取值及含义如下: 其中的按钮角色ButtonRole的含义及用途请参考<PyQt(Python+Qt)学习随笔:…
windowFilePath属性仅对窗口对象有效,用于关联一个窗口和对应的文件及路径. 当窗口没有设置标题属性的情况下,则窗口标题展示展示windowFilePath对应的文件名的信息(路径信息不展示),如果二者都设置,则优先使用窗口标题属性的设置作为标题. 该属性缺省为空,可以通过windowFilePath()和setWindowFilePath(QString )来访问和设置windowFilePath属性. 这个功能在窗口打开文件进行操作时可以使用来标记打开的文件. 注意该属性有国际化设…
在<PyQt(Python+Qt)学习随笔:布局控件layout的layoutSizeConstraint属性>中介绍layout的layoutSizeConstraint属性后,反复测试发现如下的应用窗口: 再怎么设置布局控件的layoutSizeConstraint的值,所有部件都可以跟随无限放大,而最小可以缩小到如下: 感觉这个参数不起作用,后经反复测试,发现这个参数只对窗口的布局起作用.在通过窗口中点击鼠标右键->Lay out选择布局方式来设置布局: 设置后在窗口的属性设置部分…