[英]PySide2 - change table header background color
我現在擁有的是默認的QTableWidget。 我只更改了具有偶數索引的行的背景色。 我想對表頭做同樣的事情。
我試過的self.horizontalHeaderItem(...).setBackgroundColor(QColor(...))
和self.horizontalHeaderItem(...).setBackground(QBrush(...))
-失敗。
接下來我嘗試了什么self.horizontalHeader().setStyleSheet("::section {" "background-color: lightblue; }")
-我設法更改了背景色。 問題是(1)由於我在PySide2文檔中找不到它,所以我不太了解這段代碼的實際含義,(2)該代碼不僅更改了背景,而且更改了許多標頭外觀功能。
如何僅更改標題背景? 或更籠統地說-如何調整PySide2中表格標題的外觀?
在這里,我將發布我在尋求答案時學到的知識-2種可能的解決方案。
我猜問題出在notImplemented
, notDocumented
, notExplained
問題的混合混雜中。 我希望將來情況會有所好轉。 現在回答。
該問題可以這樣解決(也可以不這樣):
plt = QPalette()
plt.setColor(QPalette.Button, QColor(128, 0, 0))
my_table_widget.horizontalHeader().setPalette(plt)
QPalette
控制小部件的顏色。 但是外觀控制還有另一層-樣式。 我在Win10x64上使用PySide2,因此默認樣式為windowsvista
,共有3種樣式: fusion
, windows
, windowsvista
。 Windowsvista
樣式會忽略大多數調色板顏色。 因此,為了使這種方法起作用,應該更改整個應用程序的樣式(或僅更改某些小部件?):
app.setStyle(QStyleFactory.create('fusion'))
我想出的另一種解決方案是(對我而言更可取):
my_table_widget.horizontalHeader().setStyleSheet('''
::section {
background-color: lightgray;
border-style: flat;
padding: 0px 5px;
}''')
和...一起:
my_table_widget.horizontalHeader().setDefaultAlignment(Qt.AlignLeft | Qt.AlignVCenter)
我猜這是一個用於調整按鈕外觀的樣式表。 我不太明白的意思section
詞。 此外,要使用這種方法,應該使用google和Qt5文檔。 應用第二種解決方案后,我的表格外觀如何:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.