PySide2
文章平均质量分 70
Marvin Ming
目前在国企研究院做软件研发项目,擅长Python,爬虫、数据分析、软件开发和后端均有涉猎。
关于博客文章有任何问题请留言,我会不定期回复,欢迎交流,但百度10分钟内能够解决的问题不会回复。
其他问题可通过邮箱联系:constmmq@163.com。
展开
-
PySide2之QTableView结合QAbstractTableModel显示表格数据
Model负责与数据源通讯,并提供接口给结构中的别的组件使用。通讯的实质依赖于数据源的类型与Model实现的方式。View从Model获取模型索引,模型索引是数据项的引用。通过把模型索引提供给Model,View可以从数据源中获取数据。需求描述继承QAbstractTableModel类,创建自定义Model,用于保存表格类数据,供QtableView、QChart等视图调用显示。原创 2021-09-05 11:21:48 · 4533 阅读 · 0 评论 -
PySide2下如何动态添加和移除widgets和layouts
前言在软件开发的过程中,需要在对话框中动态添加和移除控件对象,并且对话框需要根据窗口内容的变化自适应调整自身大小(目前只能自适应变大,不能自适应变小,后续有机会再修改)。下面是代码运行效果截图:代码启动页面动态增加窗口内容动态移除窗口内容代码开发环境:Python3.7 + PySide2PyQt5实现方式基本相同。import sysimport numpy as npfrom PySide2.QtWidgets import QDialog, QWidget, QGrid原创 2021-08-30 15:40:32 · 3906 阅读 · 0 评论 -
Qt QGridlayout 布局比例-解决列宽不符合设定问题
在设定完QGridlayout布局内容后,将layout传入下述函数,即可实现行列宽高设定基本符合需求。 def gridLayoutSet(self, layout): # 设置每行每列比例一致 # 需设置每行每列最小宽度或高度,size需小于self.width() / layout.rowCount() rowSize = 100 colSize = 100 for row in range(layout.row原创 2020-09-08 11:12:49 · 7748 阅读 · 0 评论 -
qt调整widget间距
运行环境windows10PySide2Qt5.12.8Python3.7问题描述继承QDialog自定义了对话框,为其添加了toolbar和图表显示,但两者之间的上下间距过大,不甚美观,需做以调整。解决方案self.main_layout = QGridLayout() # 必须使用QGridLayout布局# 关键在下面两句,缺一不可self.main_layout.setVerticalSpacing(0)self.main_layout.setContentsMargi原创 2020-08-22 10:15:48 · 3062 阅读 · 2 评论 -
PySide2下QAbstractItemModel实现元素的插入与删除
背景介绍基于QAbstractItemModel自定义了TreeModel,并自定义了TreeItem。由于集成自QAbstractItemModel,需要手动撰写删除和添加对象的代码。代码一参考文献中的代码为C++,改写为Python后代码如下 def insertRows(self, row, count, parent:QModelIndex): # 调用insertRow()会自动调用重写的insertRows() parentItem = paren原创 2020-08-21 21:42:46 · 1049 阅读 · 0 评论 -
QT-GraphicScene大于GraphicView时,场景居中问题
使用环境:PySide2 + QT5.12.8 + Python3.7 + Windows10QT或者PyQt解决思路类似。问题描述:由于项目需要,场景需要较大的区域,因此初始化时,场景的面积大于视图窗口的面积,这种情况下,会出现滚动条,且软件会默认将视图聚焦与场景中间,而不是左上角,不符合通常的软件操作习惯,因此需要设置将视图窗口聚焦于场景左上角。解决方案:下述代码仅作参考,关键代码为self.graphView.centerOn(0, 0),通过这句代码将视图中心设置为左上角。from原创 2020-08-14 16:39:56 · 1917 阅读 · 1 评论 -
PySide2/PyQt5 实现设置QDockWidget初始大小
尝试了QDockWidget自带的很多方法,发现无法在保证其可调整大小的情况下,设置其初始大小。当QDockWidget不需要支持调整大小时,可按照如下方法进行设置:# 非完整代码,仅供参考from PySide2.QtWidgets import QDockWidget, QMainWindowclass UIMainWindow(QMainWindow): def __init__(self, *args, **kwargs): super(UIMainWindow, s原创 2020-06-23 16:57:14 · 2780 阅读 · 0 评论