pyqt5 使用setStyleSheet設定單元格的邊框樣式
阿新 • • 發佈:2019-02-02
最近做一個專案是使用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()