1. 程式人生 > >pyqt5 使用setStyleSheet設定單元格的邊框樣式

pyqt5 使用setStyleSheet設定單元格的邊框樣式

最近做一個專案是使用python開發電子稱的GUI圖形互動介面,其中一個頁面需要通過串列埠實時讀取電子稱的重量,並將每一件商品的資訊展示在頁面的表格中。

steStyleSheet的語法和css類似,可以針對某一類元素統一設定樣式,也可以指定某一個元素單獨設定樣式

下面是一個例子,

from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys
class MyTable(QTableWidget):
    def __init__(self,parent=None):
        super(MyTable,self).__init__(parent)
        self.setWindowTitle("me")
        self.setShowGrid(False)#設定顯示格子線
        # self.setStyleSheet("QTableWidget{background-color: white;border:20px solid #014F84}")
        self.setStyleSheet("QTableWidget{background-color: black;border:20px solid #014F84}"
                           "QTableWidget::item{border:1px solid #014F84}")

        self.resize(1000,600)
        self.setColumnCount(5)
        self.setRowCount(2)
        self.setColumnWidth(0,220)

        self.setColumnWidth(1, 220)
        self.setColumnWidth(2, 220)
        self.setColumnWidth(4,300)
        self.setRowHeight(0,100)
        #設定第一行高度為100px,第一列寬度為200px
        self.table()
    def table(self):
        #self指的是MyTable這個類
        # self.setStyleSheet("Box{border:5px}")
        Item00=QTableWidgetItem("2018/11/09 10:45\nXXX歡迎使用X號工作臺")
        textFont=QFont("song",14,QFont.Bold)
        Item00.setFont(textFont)
        self.setItem(0,0,Item00)
        
        # self.resizeColumnsToContents()
        # self.resizeRowsToContents()#行和列的大小設定為與內容相匹配
        Item01=QTableWidgetItem("九亭1號倉")
        textFont=QFont("song",19,QFont.Bold)
        Item01.setFont(textFont)
        self.setItem(0,1,Item01)
        Item02 = QTableWidgetItem("美菜 土豆 3KG")
        textFont = QFont("song", 19, QFont.Bold)
        Item02.setFont(textFont)
        self.setItem(0,2,Item02)
        button=QPushButton()
        Item03 = QTableWidgetItem("退出")#在這裡面需要加一個按鈕,按鈕為紅色,按鈕文字為退出
        textFont = QFont("song", 13, QFont.Bold)
        button.setFont(textFont)
        button.setObjectName("button")
        button.setStyleSheet("#button{background-color: red}")
        Item03.setFont(textFont)
        self.setItem(0,3,Item03)
        self.verticalHeader().setVisible(False)#影藏列表頭
        self.horizontalHeader().setVisible(False)#隱藏行表頭
        #下面設定表格的邊框顏色



        self.item(0, 0).setForeground(QBrush(QColor(255, 255, 255)))
        self.item(0,0).setForeground(QBrush(QColor(255,255,255)))#設定字型的顏色,還需要設定字型的大小
        self.item(0,1).setForeground(QBrush(QColor(255, 255, 255)))
        self.item(0,2).setForeground(QBrush(QColor(255, 255, 255)))
        self.item(0,3).setForeground(QBrush(QColor(255, 255, 255)))

        # self.item(0,4).setForeground(QBrush(QColor(255, 255, 255)))
app=QApplication(sys.argv)
mytable=MyTable()
mytable.show()
app.exec()