专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 在使用QTextBrowser用于记录输出日志,并接管了标准输出后,对于某些Python模块输出的反映处理进度的提示内容,在pycharm中显示为一行,但在自己的日志文件中显示为N多行.为此分析了一下这些特殊的日志信息,发现是使用'\r'为开头的字符串,即输出不换行但回到行首.为此要做QTextEdit和QTextBrowser实现类似的效果,可以…
通过currentIndex()可以获取listView控件的当前选择元素,如果选择了多个,则可以通过selectedIndexes()来获取选择的元素,不过这两个函数返回的是元素数据,而不是索引编号,如果要取到索引顺序号,需要通过row()函数. 案例(m_ListView为listView控件名,displaySelected为一个TextBrowser控件名,itemmodel为列表项的数据存储名): def DisplayItem(self): selected = self.m_Lis…
在<PyQt学习随笔:Qt中tem Views(Model-Based)和Item Widgets(Item-Based)控件的用途和关系>中介绍了,Model用于存储数据,View用于展现并接受用户操作.在实现时,Model和View的交互过程有如下几种: 1.初始化时,通过view类的setModel函数将View和Model进行关联: 2.在项目中,Model中的数据一般来源于数据源(如数据库.文件.消息等),由Model负责数据的读取.更新.增加和删除,数据变化后,会自动发dataCh…
在<PyQt学习随笔:重写setData方法截获Model/View中视图数据项编辑的注意事项>介绍的方法,从Model相关类派生自定义类,通过重写setData方法以获取View中数据的实时变动. 但通过实际的应用实现后发现,变更后的数据如果要更新到后端的数据存储(如文件和数据库)中去时,意味着setData方法要实现后端数据存储的写入,为了保证数据访问的一致性及简洁性,意味着需要在自定义的Model类中实现后端数据存储数据的所有读写删除插入操作,否则自定义类中只实现更新,其他类中实现插入.…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 在QTableWidget对项的操作支持选中多个项的情况下,可以通过方法selectedRanges返回选中矩形的列表,通过方法setRangeSelected将指定矩形范围的项选中或去选中.相关方法调用语法如下: list[QTableWidgetSelectionRange] selectedRanges() setRangeSelected( QTableWidgetSelectionRan…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTableWidget部件中的QTableWidgetItem项数据可以通过项的data( int role) 方法获取项中指定列指定角色的数据,也可以通过setData(int role, QVariant value)方法设置指定角色的数据为value.例如项的文本可以通过data方法和setData方法使用Qt.DisplayRole.Qt.EditRole这两种角色去访问. 关于数据的角…
按照<PyQt学习随笔:Model/View中设置视图数据项可编辑的方法>的方法支持视图数据可编辑后,编辑后的数据无需主动保存,PyQt会自动将界面变更的数据保存到对应的Model存储中,如果知道变化数据所在的行和列,就可以对该数据进行访问,访问方法是先通过行和列得到数据的Index,然后通过Index访问对应数据值.如: i = self.tableViewModel.index(1,1) d1 = i.data(Qt.DisplayRole) d2 = i.data(Qt.EditRole…
我们知道多个视图之间通过使用相同的model就可以实现数据的共享(具体请参考< PyQt学习随笔:ListView控件的视图和数据模型分离案例>),除了数据的共享之外,多个视图之间还可以同步选择项,需要同步选择项的视图首先必须是数据共享的,然后再设置相互之间有相同的选择Model,即选择项的数据存储,则这些同步视图中的一个的数据项选择发生变化会同时引起选择项同步设置了的视图的选择项发生同样的变更. 如果要实现ViewA与ViewB的视图同步,只需要执行如下语句: ViewA.setSelect…
老猿是按照<第15.5节 PyQt5安装与配置>步骤安装的PyQt及相关工具,但最近在Qt Designer中点击帮助相关菜单时报错找不到assistant.exe文件,如图: 按照报错信息查看相关目录:C:\Program Files\Python37\Lib\site-packages\pyqt5_tools\Qt\bin\bin,发现不存在该目录,但最后一个bin子目录去掉后的目录即C:\Program Files\Python37\Lib\site-packages\pyqt5_too…
在往Model中通过QStandardItem等类插入数据项时,除了实际插入的存储数据,还可以设置不同角色(请参考<PyQt学习随笔:Model/View中诸如DisplayRole的数据角色及含义>)的数据到数据项中,这样可以对数据项设置诸如是否有可勾选.对齐方式等角色数据. 可参考如下代码: newitem = QStandardItem(data) #print(f"line[col]={line[col]},newitem={newitem},data={newitem.te…