How to draw correct headerview border using stylesheets
qheaderview, qt, qtableview, qtstylesheets, qtwidgets
Solution
QTableView#tableWidget QHeaderView
{
/* draw the hole hor top & bottom line for the header */
height: 24px;
border-top: 1px solid #161618;
border-bottom: 1px solid #161618;
}
QTableView#tableWidget QHeaderView::section:horizontal:first
{
border-left-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #f4f4f6, stop:1 #ceced6);
}
QTableView#tableWidget QHeaderView::section:horizontal:last
{
border-right-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #f4f4f6, stop:1 #ceced6);
}
QTableView#tableWidget QHeaderView::section:horizontal
{
/* for each section draw ONLY left & right lines */
height: 24px;
border-style: none;
border-left: 1px solid #ecedef;
border-right: 1px solid #b1b1b5;
background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #f4f4f6, stop:1 #ceced6);
}
Problem
On the picture represented dialog window with only one widget class `QTableWidget`. My problem is that bottom border of the header (red square, `QHeaderView` class) is overlaps with left/right colored borders! What I want, is to make red squares sections view correctly, as green squares. Zoomed picture: Here is QSS code from Qt Designer which I'm using: ``` QTableView#tableWidget QHeaderView::section:horizontal { height: 24px; border-style: none; border-left: 1px solid #ecedef; border-top: 1px solid #161618; border-right: 1px solid #b1b1b5; border-bottom: 1px solid #161618; background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #f4f4f6, stop:1 #ceced6); } /* QTableView#tableWidget QHeaderView::section:horizontal:first, QTableView#tableWidget QHeaderView::section:horizontal:last { border-left-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #f4f4f6, stop:1 #ceced6); } */ ```