簡體   English   中英

PySide2-更改表格標題背景色

[英]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種可能的解決方案。

我猜問題出在notImplementednotDocumentednotExplained問題的混合混雜中。 我希望將來情況會有所好轉。 現在回答。

該問題可以這樣解決(也可以不這樣):

plt = QPalette()
plt.setColor(QPalette.Button, QColor(128, 0, 0))
my_table_widget.horizontalHeader().setPalette(plt)

QPalette控制小部件的顏色。 但是外觀控制還有另一層-樣式。 我在Win10x64上使用PySide2,因此默認樣式為windowsvista ,共有3種樣式: fusionwindowswindowsvista 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM