QTableWidget或QTableView用于切换单元格图像

我正在这里寻找指导。我想要一个带有数据行的表。列之一为空,专用于用户输入。如果用户喜欢该行中的数据,则单击空白单元格将显示图像,即心脏。如果用户以后改变了主意,则单击该图像将删除它。我不确定QTableView是否支持它的功能。如果我认为可以使用QTableView或QTableWidget完成此假设是错误的,则我感谢任何朝着正确方向提出的指导。



弑天下
浏览 293回答 1
1回答

小唯快跑啊

尝试一下:import sysfrom PyQt5.QtGui     import *from PyQt5.QtCore    import *from PyQt5.QtWidgets import *class MainWindow(QMainWindow):    def __init__(self):        QMainWindow.__init__(self)        self.setGeometry(600, 200, 330, 180)        self.tableWidget = QTableWidget()        self.tableWidget.setRowCount(3)        self.tableWidget.setColumnCount(3)        self.tableWidget.setHorizontalHeaderLabels(['Product', 'Description', 'Likes/UnLikes'])        self.setCentralWidget(self.tableWidget)        for x in range(3):            self.button = QPushButton('Likes/UnLikes', self)             self.button.setFlat(True)            self.tableWidget.setItem(x, 0, QTableWidgetItem('Product{}'.format(x)))            self.tableWidget.setItem(x, 1, QTableWidgetItem('Description'))            self.tableWidget.setCellWidget(x, 2, self.button)            self.button.clicked.connect(                lambda state, w=self.tableWidget.cellWidget(x,2), r=x, c=2: self.button_pushed(w, r, c)            )    def button_pushed(self, w, r, c):         if w.text() != "Likes/UnLikes":            w.setIcon(QIcon(""))            w.setText("Likes/UnLikes")        else:            w.setIcon(QIcon("E:/_Qt/img/heart.png"))            w.setText(" Likes")        w.setIconSize(QSize(20, 20))        self.tableWidget.setCellWidget(r, c, w)app = QApplication(sys.argv)w   = MainWindow()w.show()sys.exit(app.exec_())
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python