2014-10-02 172 views
4

我想用特定樣式在Qt中顯示錶格。我想繪製所有具有相同顏色和相同寬度的網格線。QTableView/QTableWidget網格樣式表 - 網格線寬度

問題是,難以風格QHeaderView。所有的時間,我得到2px網格寬度或根本沒有網格。

我有一個QTableWidget的

QTableWidget

和asociated的styleSheet

QWidget { 
    background-color: #333333; 
    color: #fffff8; 
} 

QHeaderView::section { 
    background-color: #646464; 
    padding: 4px; 
    border: 1px solid #fffff8; 
    font-size: 14pt; 
} 

QTableWidget { 
    gridline-color: #fffff8; 
    font-size: 12pt; 
} 

QTableWidget QTableCornerButton::section { 
    background-color: #646464; 
    border: 1px solid #fffff8; 
} 

如下因素窗口是否有什麼招數讓所有網格線1像素寬度?我正在使用4.8.5,我無法升級到版本5.x.

+0

默認情況下表顯示所有邊界分開,所以你會得到邊界2px的,而不是一個。你可以嘗試添加CSS邊框崩潰:崩潰;'爲QWidget – Caelea 2014-10-02 14:05:15

回答

3

訣竅是border-style: none; in QHeaderView::section女巫後border-left,border-right,border-topborder-bottom開始工作。對於QHeaderView::section正確的風格應該是

QHeaderView::section { 
    background-color: #646464; 
    padding: 4px; 
    font-size: 14pt; 
    border-style: none; 
    border-bottom: 1px solid #fffff8; 
    border-right: 1px solid #fffff8; 
} 

QHeaderView::section:horizontal 
{ 
    border-top: 1px solid #fffff8; 
} 

QHeaderView::section:vertical 
{ 
    border-left: 1px solid #fffff8; 
} 
2

我認爲你做了什麼是你增加額外的邊框部分細胞,而部分屬性應該看起來像(雖然我沒有嘗試這種解決方案)

QHeaderView::section { 
    background-color: #646464; 
    padding: 4px; 
    border: 0px; 
    font-size: 14pt; 
} 

有關詳細信息如何風格你頭見:

http://pastebin.com/svReqHr3

HowTo draw correct CSS border in header?

+0

這不是一個解決方案,但謝謝你的鏈接。 「border-left」開始工作後,有一種「border-style:none;」的技巧。 – j123b567 2014-10-03 06:45:58