可以用pyqt5创建一个开关按钮吗?在

我正在用pyqt5在python中设计一个过滤工具。用户甚至可以对其数据进行过滤或合并。在

我在qtablewidget中显示可能的过滤器,用户可以使用复选框选择要应用的过滤器。在每一行中,复选框都是独占的,即用户不能同时选择一个过滤器及其补码。在

但问题是,一旦我们选中了一行中的一个复选框,我们就不能取消选中它,除非我们选择了相反的复选框。

事实上,当过滤器刚刚加载时,所有的框都被取消选中(它们在某种程度上是空的),所以我可以选择应用哪个过滤器,但是当我想选择另一个过滤器时,前一个过滤器的其中一个框仍然处于选中状态(方框过滤器或方框补码被选中),我无法将其关闭。在

这就是为什么我考虑在每一行添加一个开关按钮来禁用过滤器。通过这样做,我将能够考虑是否考虑到选中的属性。在

下面是我想要的一个例子:

下面是一个可复制的例子from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):

def setupUi(self, MainWindow):

MainWindow.setObjectName("MainWindow")

MainWindow.resize(550, 350)

MainWindow.setMinimumSize(QtCore.QSize(550, 350))

MainWindow.setMaximumSize(QtCore.QSize(550, 350))

self.centralwidget = QtWidgets.QWidget(MainWindow)

self.centralwidget.setObjectName("centralwidget")

self.tableWidget = QtWidgets.QTableWidget(self.centralwidget)

self.tableWidget.setGeometry(QtCore.QRect(20, 20, 500, 200))

self.tableWidget.setObjectName("tableWidget")

self.tableWidget.setColumnCount(3)

self.tableWidget.setRowCount(0)

item = QtWidgets.QTableWidgetItem()

self.tableWidget.setHorizontalHeaderItem(0, item)

item = QtWidgets.QTableWidgetItem()

self.tableWidget.setHorizontalHeaderItem(1, item)

item = QtWidgets.QTableWidgetItem()

self.tableWidget.setHorizontalHeaderItem(2, item)

self.pushButton_Save = QtWidgets.QPushButton(self.centralwidget)

self.pushButton_Save.setGeometry(QtCore.QRect(120, 250, 100, 50))

self.pushButton_Save.setMinimumSize(QtCore.QSize(100, 50))

self.pushButton_Save.setMaximumSize(QtCore.QSize(100, 50))

self.pushButton_Save.setObjectName("pushButton_Save")

MainWindow.setCentralWidget(self.centralwidget)

self.menubar = QtWidgets.QMenuBar(MainWindow)

self.menubar.setGeometry(QtCore.QRect(0, 0, 550, 21))

self.menubar.setObjectName("menubar")

MainWindow.setMenuBar(self.menubar)

self.statusbar = QtWidgets.QStatusBar(MainWindow)

self.statusbar.setObjectName("statusbar")

MainWindow.setStatusBar(self.statusbar)

self.retranslateUi(MainWindow)

QtCore.QMetaObject.connectSlotsByName(MainWindow)

def retranslateUi(self, MainWindow):

_translate = QtCore.QCoreApplication.translate

MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))

item = self.tableWidget.horizontalHeaderItem(0)

item.setText(_translate("MainWindow", "Name"))

item = self.tableWidget.horizontalHeaderItem(1)

item.setText(_translate("MainWindow", "Filter"))

item = self.tableWidget.horizontalHeaderItem(2)

item.setText(_translate("MainWindow", "complement"))

self.pushButton_Save.setText(_translate("MainWindow", "Save"))

self.pushButton_Save.clicked.connect(self.bindSave)

def bindSave(self):

numRows = self.tableWidget.rowCount()

self.tableWidget.insertRow(numRows)

groupButton = QtWidgets.QButtonGroup(self.tableWidget)

groupButton.setExclusive(True)

it1 = QtWidgets.QTableWidgetItem("filter "+str(numRows))

self.tableWidget.setItem(numRows, 0, it1)

ch_bx1 = QtWidgets.QCheckBox()

groupButton.addButton(ch_bx1)

self.tableWidget.setCellWidget(numRows, 1, ch_bx1)

ch_bx2 = QtWidgets.QCheckBox()

groupButton.addButton(ch_bx2)

self.tableWidget.setCellWidget(numRows, 2, ch_bx2)

if __name__ == "__main__":

if not QtWidgets.QApplication.instance():

app = QtWidgets.QApplication(sys.argv)

else:

app = QtWidgets.QApplication.instance()

MainWindow = QtWidgets.QMainWindow()

ui = Ui_MainWindow()

ui.setupUi(MainWindow)

MainWindow.show()

python中开关_pyq中的开关按钮相关推荐

  1. 使用Python,EoN模拟网络中的疾病扩散模型,并结合matplotlib绘图

    使用Python,EoN模拟网络中的疾病扩散模型,并结合matplotlib绘图 1. EoN是什么 2. 安装 3. 效果图 4. 源代码 4.1 源码 4.2 源码 参考 写这篇博客源于博友的提问 ...

  2. 使用Python,OpenCV在视频中进行实时条形码检测

    使用Python,OpenCV在视频中进行实时条形码检测 1. 步骤 2. 适用场景及优化 3. 总结 4. 源码 参考 上一篇博客介绍了如何检测和查找图像中的条形码.这篇博客将进行一些优化以检测实时 ...

  3. 关于python缩进的描述中_关于Python程序中与“缩进”有关的说法中,以下选项中正确的是()...

    关于Python程序中与"缩进"有关的说法中,以下选项中正确的是() 答:缩进在程序中长度统一且强制使用 同文学或同音乐主题的民歌,<_______>是其中之一.此曲经 ...

  4. python缩进在程序中长度统一且强制使用_Python习题纠错1

    February, 1991 0.9.1 2.Python语言的缩进只要统一即可,不一定是4个空格(尽管这是惯例). Python缩进在程序中长度统一且强制使用. 3.IPO:Input Proces ...

  5. python中json dumps_python中json.loads,dumps,jsonify使用

    search_info = {'id':132,'user_role':3} print type(search_info) #输出 #转为string用dumps print type(json.d ...

  6. python io模块_python中的StringIO模块

    原博文 2015-10-23 15:21 − # python中的StringIO模块 标签:python StringIO --- > 此模块主要用于在内存缓冲区中读写数据.模块是用类编写的, ...

  7. python调用js库中的函数_Python 调用JS文件中的函数

    Python 调用JS文件中的函数 1.安装PyExecJS第三方库 2.导入库:import execjs 3.调用JS文件中的方法 Passwd = execjs.compile(open(r&q ...

  8. python使用statsmodels包中的tsaplots函数和lags参数可视化时间序列数据指定滞后位置个数(级别)以前的所有自相关性(plot the autocorrelation)

    python使用statsmodels包中的tsaplots函数和lags参数可视化时间序列数据指定滞后位置个数(级别)以前的所有自相关性(plot the autocorrelation Funct ...

  9. python使用statsmodels包中的robust.mad函数以及pandas的apply函数计算dataframe中所有数据列的中位数绝对偏差(MAD)

    python使用statsmodels包中的robust.mad函数以及pandas的apply函数计算dataframe中所有数据列的中位数绝对偏差(MAD.Median Absolute Devi ...

最新文章

  1. 【数据结构与算法】之深入解析“省份数量”的求解思路与算法示例
  2. TI Sitara AM335x系统之AM335x uboot spl分析
  3. 华为鸿蒙怎么体验,华为鸿蒙 HarmonyOS 2.0 发布,教你如何升级体验
  4. 2017 济南综合班 Day 2
  5. 关于mysql的论文,大家给点建议
  6. 我的数据分析入门整理(一)
  7. 微信小程序 讲座预约签到系统java python php
  8. Windows使用WakeOnLan配置【较详细】
  9. 如何批量将图片转换为 Excel 文档
  10. 往期回顾和开学第二周总结
  11. 【Android破解笔记】割绳子2内购
  12. 年薪30万+的HR这样做数据分析!(附关键指标免费模版)
  13. 【O2O领域】Axure外卖配送代理商调度系统原型,生鲜配送站团队管理后台原型
  14. 一名富有激情的潮汕籍工程师的进阶之路:数据即未来
  15. 用 justify-content 属性设置子元素两端对齐
  16. 【从0到1搭建LoRa物联网】14、低成本单通道网关(二)
  17. finalize 复活_为什么Sekiro的其他内容将在2020年复活
  18. 图神经网络论文阅读(九) Break the Ceiling: Stronger Multi-scale Deep Graph Convolutional Networks,NeurIPS2019
  19. 甲方安全之仿真钓鱼演练(邮件+网站钓鱼)
  20. System.Globalization.CultureInfo.InvariantCulture 解决不同地域字符串格式不同问题

热门文章

  1. Bit Manipulation —— 位运算
  2. Python3 实现单例设计模式
  3. canoco5主成分分析步骤_R语言 PCA主成分分析
  4. 字节跳动offer流程多长时间_字节跳动-运营实习生-面经实录(已Offer??)
  5. 06-广度优先搜索:图、队列
  6. 土木工程到底有多惨?哭了哭了......
  7. Linux里10个最危险的命令
  8. mysql去掉两个最高分_数据分析系列 16/32 | MySQL中子查询与联合查询
  9. python选择题题目_Python接口测试题(持续更新中)
  10. mysql 常用权限_MySQL的权限有哪些