2017-01-03 137 views
2

如何使用背景圖像設置QTableWidget左上角?現在它是白色的。 (下圖所指出)如何使用背景圖像設置QTableWidget左上角?

enter image description here

這是我的樣式表代碼:

QWidget { 
    background-image: url(src/bg.jpg); 
    color: #fffff8; 
} 

QHeaderView::section { 
    background-image: url(src/bg.jpg); 
    padding: 4px; 
    border: 1px solid #fffff8; 
} 

QTableWidget { 
    gridline-color: #fffff8; 
} 

QTableWidget QTableCornerButton::section { 
    background-image: url(src/bg.jpg); 
    border: 1px solid #fffff8; 
} 
+0

我的猜測是你將不得不添加一個列來保存行號,並禁用標題。 – Schollii

+0

在Linux上適合我。你可以嘗試設置一個不同的[corner widget](https://doc.qt.io/qt-4.8/qabstractscrollarea.html#setCornerWidget)。 – ekhumoro

+0

哦!謝謝,當我使用setHorizo​​ntalHeaderLabels()時,QTableWidget左上角是白色的,這是一個qt錯誤? @Schollii – liaokong

回答

0

你將不得不使用自定義行標題欄:

  • 禁用內置行標題列,
  • 添加一列以存放行號,
  • 定義插槽,用於在添加/刪除行時更新行ID,並選擇行,更改其字體等。最後,設置要在列= 0列標題中使用的小組件。
+0

謝謝Schollii :) – liaokong

2

對於我來說,在Windows上使用PyQt4.13,創下了Qt樣式表QTableWidget QTableCornerButton元件上的背景色有效果,但設置背景圖片也沒有。但是,您可以使背景顏色透明(rgba(0,0,0,0)),然後您會看到小部件閃爍的背景圖像。應該再次設置邊框以使其看起來不錯。

代碼:

from PyQt4 import QtGui 

app = QtGui.QApplication([]) 

# app.setStyleSheet('QWidget { background-color: #aa8888; } QHeaderView::section { background-color: #88aa88; } QTableWidget QTableCornerButton::section {background-color: #8888aa; }') 
# app.setStyleSheet('QWidget { background-image: url(bg.png); } QHeaderView::section { background-image: url(bg.png); } QTableWidget QTableCornerButton::section {background-image: url(bg.png); }') 
app.setStyleSheet('QWidget { background-image: url(bg.png); } QHeaderView::section { background-color: rgba(0,0,0,0); } QTableWidget QTableCornerButton::section {background-color: rgba(0,0,0,0); }') 

w = QtGui.QTableWidget(2, 2) 
w.show() 

app.exec_() 

結果(取決於哪一種樣式線使用): enter image description here

左圖:小工具集,headerview和tablecornerbutton背景色工作

中心圖像:設置小部件背景圖像,嘗試設置headerview和tablecornerbutton背景圖像,但不起作用

正確的圖像:設置小部件背景圖像,將headerview和tablecornerbutton背景顏色設置爲透明。可能需要重新設置邊界。