Python 如何更改pyqt5 QTableWidget中选定或单击的单元格的背景色?
我是pyqt的新手。我正在尝试更改QTableWidget中选定单元格的背景色。单击/选择时是否可以更改颜色,未选择时是否可以返回默认颜色 此外,属性cellClicked仅返回行号。如何同时获取行和列编号Python 如何更改pyqt5 QTableWidget中选定或单击的单元格的背景色?,python,pyqt,pyqt5,qtablewidget,Python,Pyqt,Pyqt5,Qtablewidget,我是pyqt的新手。我正在尝试更改QTableWidget中选定单元格的背景色。单击/选择时是否可以更改颜色,未选择时是否可以返回默认颜色 此外,属性cellClicked仅返回行号。如何同时获取行和列编号 from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5.QtWidgets import QApplication, QWidget, QTableWidget, QTableWidgetItem, QVBoxLayout class
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication, QWidget, QTableWidget, QTableWidgetItem, QVBoxLayout
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(1124, 801)
self.tableWidget = QtWidgets.QTableWidget(Form)
self.tableWidget.setGeometry(QtCore.QRect(30, 40, 1000, 600))
self.tableWidget.setRowCount(15)
self.tableWidget.setColumnCount(6)
self.tableWidget.setAlternatingRowColors(True)
self.tableWidget.setObjectName("tableWidget")
for i, col_name in enumerate(['symbol', 'step', 'factor', 'initial_lot', 'max_streak', 'status']):
self.tableWidget.setHorizontalHeaderItem(i, QTableWidgetItem(col_name))
self.tableWidget.verticalHeader().setVisible(False)
self.tableWidget.verticalHeader().setMinimumSectionSize(20)
self.tableWidget.horizontalHeader().setStyleSheet(
"QHeaderView::section{"
"border-bottom: 1px solid #4a4848;"
"background-color:white;"
"}")
self.tableWidget.cellClicked.connect(lambda x: self.print_selected(x))
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
def print_selected(self, s):
print(s)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
Form.show()
sys.exit(app.exec_())
Python3.7.6,pyqt5使用qpalete.Highlight
pallete = self.tableWidget.palette()
hightlight_brush = pallete.brush(QPalette.Highlight)
hightlight_brush.setColor(QColor('red'))
pallete.setBrush(QPalette.Highlight, hightlight_brush)
self.tableWidget.setPalette(pallete)
cellClicked信号同时传递行和列:
void QTableWidget::单元格单击输入行,输入列
使用Qpalete。突出显示
pallete = self.tableWidget.palette()
hightlight_brush = pallete.brush(QPalette.Highlight)
hightlight_brush.setColor(QColor('red'))
pallete.setBrush(QPalette.Highlight, hightlight_brush)
self.tableWidget.setPalette(pallete)
cellClicked信号同时传递行和列:
void QTableWidget::单元格单击输入行,输入列
突出部分工作正常。但是,当cellClick之后触发“print_selected”功能时,cellClicked不会同时返回行和列。您可以观察到,如果运行上面的代码.self.tableWidget.cellClicked.connectlambda row,col:printrow,col,高亮显示部分工作正常。但是,当cellClick之后触发“print_selected”功能时,cellClicked不会同时返回行和列。您可以观察到,如果运行上面的代码。self.tableWidget.cellClicked.connectlambda row,col:printrow,col