欢迎光临散文网 会员登陆 & 注册

气轻PyQt6 32 表-背景颜色文字颜色

2023-06-05 08:06 作者:气轻  | 我要投稿

 

单元背景颜色和文字颜色的处理执行后都无法立刻显示,update(),viewport().update()以及repaint()等处理都试过,但都没效果。

 

from PyQt6.QtWidgets import *

from PyQt6.QtGui import QBrush,QColor,QFont

import sys

 

treat = ['背景颜色','文字颜色']

class PyQt632(QWidget):

    def __init__(self):

        super().__init__()

        self.initUI()

    def initUI(self):

        self.setWindowTitle('气轻PyQt6')                # 设置窗口标题

        self.resize(490, 300)                           # 设置窗口大小

        self.setStyleSheet('background-color:#FFC1C1')

 

        self.bgColor = QPushButton(treat[0], self)

        self.bgColor.setGeometry(10, 120, 80, 30)

        self.bgColor.setStyleSheet('background-color:#F5DEB3;color : #8B8682; \

                    font: bold large /"SimSun/";font-size:16px')

        self.bgColor.clicked.connect(lambda :self.buttonClicked(self.bgColor))

 

        self.textColor = QPushButton(treat[1], self)

        self.textColor.setGeometry(10, 150, 80, 30)

        self.textColor.setStyleSheet('background-color:#F5DEB3;color : #8B8682; \

                    font: bold large /"SimSun/";font-size:16px')

        self.textColor.clicked.connect(lambda :self.buttonClicked(self.textColor))

 

        titles = ['编号', ' 第一列 ', ' 第二列 ', ' 第三列 ', ' 第四列 ']

        self.table = QTableWidget(8,5,self)             # 创n行m列建空表格

        self.table.setGeometry(100, 60,380,200)         # 设置位置和大小

        self.table.setStyleSheet('background-color:#E6E6FA;color : #696969; \

                    font: bold italic large /"Times New Roman/";font-size:16px')

        self.table.setHorizontalHeaderLabels(titles)    # 水平标题

        vtitle = list(map(str, list(range(8))))

        self.table.setVerticalHeaderLabels(vtitle)      # 垂直标题

                                                        # 自动调整列宽

        self.table.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeMode.ResizeToContents)

 

        self.table.setAlternatingRowColors(True)        # 行自动变色

        self.table.setFont(QFont("宋体",20))

 

        item=QTableWidgetItem('气轻')

        self.table.setItem(0,0, item)

       

        item=QTableWidgetItem('气轻python')

        self.table.setItem(2,0, item)

       

        item=QTableWidgetItem('气轻PyQt6')

        self.table.setItem(4,0, item)

       

        self.show()

 

    def buttonClicked(self,b):

        action = b.text()

        rno = self.table.currentRow()

        cno = self.table.currentColumn()

 

        if rno == -1 or  cno== -1:                      # 无效位置?

            reply = QMessageBox()

            reply.setText('请选择有效位置')

            reply.setStandardButtons(QMessageBox.StandardButton.Yes)

            x = reply.exec()

            return

 

        reply = QMessageBox()

 

        col = QColorDialog.getColor()

 

        if not col.isValid():

            reply = QMessageBox()

            reply.setText('请选择有效颜色')

            reply.setStandardButtons(QMessageBox.StandardButton.Yes)

            x = reply.exec()

            return

 

        func = [self.table.item(rno,cno).setBackground,

                self.table.item(rno,cno).setForeground]

        fdict = dict(zip(treat,func))

        fdict[action](QBrush(QColor(col.name())))

 

if __name__ == '__main__':

    app = QApplication(sys.argv)

    window = PyQt632()

    sys.exit(app.exec())

 

执行结果


气轻PyQt6 32 表-背景颜色文字颜色的评论 (共 条)

分享到微博请遵守国家法律