|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- # coding: utf-8
- import sys
- from PyQt5.QtCore import *
- from PyQt5.QtGui import *
- from PyQt5.QtWidgets import *
- class Main(QMainWindow):
- def __init__(self):
- super().__init__()
- self.resize(230, 100)
- self.table = QTableWidget(2, 2)
- item = QTableWidgetItem("Hello")
- # 设置样式表后下面的 setBackground 方法就没有效果了
- item.setBackground(QColor("green"))
- self.table.setItem(0, 0, item)
- self.setCentralWidget(self.table)
- self.show()
- if __name__ == "__main__":
- app = QApplication(sys.argv)
- # 需求是必须设置样式表,且内容为 Hello 的单元格背景色设置为 green
- # 但没有找到办法用样式表实现将内容为 Hello 的单元格背景色设置为 green
- # 且设置了样式表后 __init__ 方法中的 setBackground 就无效了,所以也没法用编程方式设置
- # 样式表该怎么写才能实现?或者使用编程的方式单独设置内容为 Hello 的单元格背景色也可以
- app.setStyleSheet(
- """
- /* 这个样式表必须设置(其实程序还有很多样式表,这里简化了) */
- QTableWidget::item {
- color: black;
- background-color: cyan;
- }
- /* 下面这 2 个样式都不能使内容为 Hello 的单元格背景变为绿色 */
- QTableWidgetItem[text='Hello'] {
- background-color: green;
- }
- QTableWidget::item[text='Hello'] {
- background-color: green;
- }
- """
- )
- main = Main()
- sys.exit(app.exec_())
复制代码
我刚也试过了,估计只能用最笨的方法要逐个单元格改颜色了,其他的方法或者重写一个QTableWidget
- import sys
- from PyQt5.QtCore import *
- from PyQt5.QtGui import *
- from PyQt5.QtWidgets import *
-
- class Main(QMainWindow):
- def __init__(self):
- super().__init__()
- self.resize(230, 100)
- self.table = QTableWidget(2, 2)
-
- cyan_color = QTableWidgetItem()
- cyan_color.setBackground(QColor("cyan"))
- for x in range(2):
- for y in range(2):
- self.table.setItem(x, y, cyan_color)
- self.setCentralWidget(self.table)
-
- green_color = QTableWidgetItem("Hello")
- green_color.setBackground(QColor("green"))
- self.table.setItem(0, 0, green_color)
- self.show()
- if __name__ == "__main__":
- app = QApplication(sys.argv)
- # 需求是必须设置样式表,且内容为 Hello 的单元格背景色设置为 green
- # 但没有找到办法用样式表实现将内容为 Hello 的单元格背景色设置为 green
- # 且设置了样式表后 __init__ 方法中的 setBackground 就无效了,所以也没法用编程方式设置
- # 样式表该怎么写才能实现?或者使用编程的方式单独设置内容为 Hello 的单元格背景色也可以
- ## app.setStyleSheet(
- ## """
- ## /* 这个样式表必须设置(其实程序还有很多样式表,这里简化了) */
- ## QTableWidget::item {
- ## color: black;
- ## background-color: cyan;
- ## }
- ##
- ## /* 下面这 2 个样式都不能使内容为 Hello 的单元格背景变为绿色 */
- ## QTableWidgetItem[text='Hello'] {
- ## background-color: green;
- ## }
- ## QTableWidget::item[text='Hello'] {
- ## background-color: green;
- ## }
- ## """
- ## )
- main = Main()
- sys.exit(app.exec_())
复制代码
|
|