日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python中开关_pyq中的开关按钮

發布時間:2023/12/4 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中开关_pyq中的开关按钮 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

可以用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中的开关按钮的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。