老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 枚举类 Qt.MatchFlag描述在模型中搜索项时可以使用的匹配类型,它可以在QStandardItemModel中和三个便利类QListWidget.QTreeWidget.QTableWidget中的findItems方法和QAbstractItemModel类的match方法中使用. 老猿Python,跟老猿学Python! 老猿Python博文目录 专栏:使用PyQt开发图形界面Pyth…
老猿Python博文目录 老猿Python博客地址 使用了好几个月的Designer,今天才发现属性编辑界面的属性名有的为粗而黑,有的则不是,如图: 稍微测试了一下,发现是对属性值进行过调整,不再是缺省值的值就会变为黑体,哪怕是又改回缺省值都不行. Designer中有个别属性一旦修改,哪怕又改回缺省值,在有些情况下会初始缺省值处理有所不同,特别是代码生成时会有不同的处理,具体是哪个属性老猿忘记了,就是通过该功能实现的. 老猿Python,跟老猿学Python! 博文目录 博客地址…
在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)学习随笔:…
一.引言 QDialogButtonBox本身只提供4种信号,分别是accepted.rejected.clicked和helpRequested,在<PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox的accepted.rejected和helpRequested信号>介绍了这些按钮中有部分会产生相同的accepted或rejected信号,有部分不会产生accepted或rejected信号,那么怎么确认点击了按钮只能通过clicked信号. 二.…
老猿Python博文目录 老猿Python博客地址 在<PyQt(Python+Qt)学习随笔:QAbstractItemView的dragEnabled和dragDropMode属性的关系>介绍了视图中dragDropMode属性对dragEnabled属性的影响,实际上除了dragDropMode属性对dragEnabled属性有影响之外,对acceptDrops属性也有类似的影响. 经老猿验证测试如下场景: 当dragDropMode设置为DragOnly.DragDrop.Intern…
老猿Python博文目录 老猿Python博客地址 在通过PyQt构建的图形界面中进行拖放,要成功进行拖放需要注意: 视图相关属性需要支持拖放,具体相关属性请参考<PyQt(Python+Qt)学习随笔:QAbstractItemView的dragEnabled属性的困惑>和<PyQt(Python+Qt)学习随笔: QAbstractItemView的dragDropMode属性> 老猿使用TableView和ListView验证,视图中提供的拖放动作是通过鼠标左键按下触发,但当…
一.引言 在Designer中创建的QDialogButtonBox对应的Button,都有指定的ButtonRole,而我们创建自定义的Button加入到QDialogButtonBox中去时,也需要设定该按钮的ButtonRole. 二.ButtonRole之我见 ButtonRole的作用在Qt文档中没有明确说明,老猿分析,ButtonRole主要有如下三个作用: 1.同一种ButtonRole的角色,界面风格相同,同一种ButtonRole的按钮在排列时应该依次连续排列: 2.同一种Bu…
老猿Python博文目录 老猿Python博客地址 frameShape属性是从QFrame继承的属性,对应类型为QFrame.Shape,该属性表示框架样式中的框架形状,有如下取值: 老猿Python,跟老猿学Python! 博文目录 博客地址I…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 以上取值可以通过或操作进行组合使用. 老猿Python,跟老猿学Python! 老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址…
老猿Python博文目录 老猿Python博客地址 frameShadow属性是从QFrame继承的属性,对应类型为QFrame.Shadow,该属性表示框架提供三维效果的阴影类型,有如下取值: 可以通过frameShadow() .setFrameShadow(Shadow)进行属性的访问. 老猿Python,跟老猿学Python! 博文目录 博客地址…
orientation属性 orientation属性表示QDialogButtonBox的方向,缺省情况下,方向为水平方向(值为Qt.Horizontal),表示QDialogButtonBox中的按钮成水平排列,可以调整为垂直方向(值为Qt.Vertical),表示QDialogButtonBox中的按钮成垂直排列. 可以通过方法orientation().setOrientation(Qt.Orientation orientation)读取和设置该属性. centerButtons属性…
引言 1.default.atuoDefault属性仅在父窗口为对话窗才生效,其他窗口类型设置这两个属性没有意义: 2.按钮的按压触发除了鼠标键之外,也可以使用回车键和空格键触发,这两个属性正是控制回车键和空格键按下时按钮的响应行为. default属性 此属性确认按钮是否为默认按钮,如果按钮被设置为默认按钮,当按下回车键时,此属性设置为True的按钮(即对话框的默认按钮)将自动被按下.请参考后面的"回车键触发按钮按下"的介绍. default属性的默认值为False,可以通过isDe…
QDialogButtonBox中可以包含多个pushButton,但QDialogButtonBox本身只提供4种信号,分别是accepted.rejected.clicked和helpRequested. 点击这些按钮除了都会产生clicked信号之外,还会可能产生accepted(表示接受对话的内容).rejected(表示拒绝对话的内容).helpRequested(表示寻求帮助)这三个信号. 下面列出这些按钮点击之后,缺省情况下accepted.rejected.helpRequest…
flat属性用于确认按钮边框是否凸起,如果为False则凸起,如果为True则边框与背景是平坦的. 默认值为False,如果设置为True,则除非按下按钮,否则大多数样式都不会绘制按钮背景.通过使用setAutoFillBackground()可用于确保使用 QPalette.Button的画笔填充背景. 可以通过isFlat() .setFlat(bool)来访问或设置该属性. 博客地址:https://blog.csdn.net/LaoYuanPython 老猿Python博客文章目录:ht…
老猿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博文目录 老猿Python博客地址 一.概述 在PyQt图形界面中,支持采用Model/View架构实现数据和界面逻辑分离,其中Model用于处理数据存储,View用于界面数据展现,当Model中的数据变化后对应界面视图自动更新,反之当View中数据进行修改之后,也支持通知Model进行数据调整. 为了快速支持Model/View架构,PyQt提供了一系列类来支持,在Qt Designer中Item Views部件栏的视图部件都是用于Model/View架构的View部件,涉及相…
一.引言 Qt Designer的表单布局(formLayout)中,layoutLabelAlignment 用于控制表单布局中标签的水平对齐方式(包括垂直和水平方向两个方向).如图: 此属性实际对应的是QFormLayout的labelAlignment属性,默认值取决于部件或应用程序样式.对于从QCommonStyle派生的样式,除了QPlastiqueStyle(KDE桌面环境的界面风格)默认值是Qt.AlignLeft,其他样式默认值都是Qt.AlignRight. 二.对齐标记Qt.…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 在Designer的部件栏Item Views中提供了PyQt和Qt已经实现好的table View(表视图)部件,table View对应的类为QTableView,QTableView类提供表视图的默认Model/View实现.这儿的所说的表视图老猿理解为类似通过行和列定位数据的表格形式的数据展现方式. QTableView是PyQt和Qt提供的一种表视图的实现,用于显示存储在Mod…
老猿Python博文目录 老猿Python博客地址 在<PyQt学习随笔:Qt中Model/View相关的主要类及继承关系>介绍了Model/View架构的主要类,在实际使用时,view相关类的对象在Qt Designer中可以直接构建,但Model相关类的对象必须代码实现,那么怎么去构造Model相关的对象与View匹配呢? 其实Model构建的方法与View类别相关,但View类别并不是唯一确认Model构建方法的要素,还要看View中数据的内容.一般来说: 如果是多行单列的字符数据,可以…
Qt中Model/View中的Model Index是一个类,该类用于定位Model/View中数据模型中的数据. Model Index是从QAbstractItemModel派生的子类,用于在项视图( item views).委托(delegates)和选择模型( selection models)使用来定位Model中的数据项(delegates相当于MVC中的C,用于在视图中处理用户的输入,输入可以通过调用model的setData函数保存到真正的数据中). 模型索引引用模型中的数据项,…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 在前面的订阅专栏<第十九章.Model/View开发:QTableView的功能及属性>及公开博文<第15.24节 PyQt(Python+Qt)入门学习:Model/View架构中QTableView的作用及属性详解>中介绍了QTableView的主要功能及属性,本节来使用QTableView与QStandardItemModel配套来开发一个简单的Excel文件展示程序…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.简介 在PyQt和Qt中,Model/View架构是图形界面开发时用于管理数据和界面展现方式的关系.由该体系架构引入的功能分离使得开发人员能够更灵活地定制展现数据项的呈现方式,并提供标准模型接口支持广泛的数据源与预定义好的项视图(item views)一起使用. 二.Model/View架构概述 2.1.引言 模型-视图-控制器(Model-View-Controller,简称MVC)是一种源…
按照<PyQt学习随笔:Model/View中设置视图数据项可编辑的方法>的方法支持视图数据可编辑后,编辑后的数据无需主动保存,PyQt会自动将界面变更的数据保存到对应的Model存储中,如果知道变化数据所在的行和列,就可以对该数据进行访问,访问方法是先通过行和列得到数据的Index,然后通过Index访问对应数据值.如: i = self.tableViewModel.index(1,1) d1 = i.data(Qt.DisplayRole) d2 = i.data(Qt.EditRole…
根据<PyQt学习随笔:Model/View中视图数据项编辑变动实时获取变动数据的方法>可以重写从PyQt的Model类继承的setData方法来实时截获View中对数据的更改,但需要注意,setData方法调用不光发生在View中实际存储的内部数据修改,也可能是其他与数据相关的属性或值调整,如数据项的checked变化,数据的对齐风格变化等. 因此如果应用需要响应数据的变化实时做出反应而重写setData时,需要判断setData的数据变化的角色,具体来说就是setData方法的参数role…
对于Model/View中视图的数据编辑后怎么能实时获取编辑的数据变动位置和变动情况查阅了一些资料,终于基本弄明白必须重写Model的setData方法才能截获.setData方法是视图中各种角色数据发生更新后视图用于更新Model数据的方法,只要重写该方法就可以截获视图对Model数据的修改. 不过网上介绍的思路都是从QAbstractTableModel派生出一个自己的Model类,并实现相关方法,比较复杂.老猿还需要仔细研究这种方法的详细方式及优缺点,相关文章大部分都是基于Qt实现的,懂C…