如何使用背景图片设置QTableWidget左上角?
How to set QTableWidget upper left corner using a background image?
如何使用背景图片设置QTableWidget的左上角?现在它是白色的。 (在下图中指着)
这是我的风格sheet代码:
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;
}
您必须使用自定义 row-headers 列:
- 禁用内置行 headers 列,
- 添加一列来保存行号,
- 定义插槽以在行为 added/removed 和 select 行时更新行 ID,更改其字体等,
- 最后设置要在 column=0 列 header 中使用的小部件。
对我来说,在 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_()
结果(取决于您使用的样式表行):
左图:设置小部件、headerview 和 tablecornerbutton 背景颜色有效
Center image: 设置widget背景图,尝试设置headerview和tablecornerbutton背景图无效
右图:设置widget背景图片,设置headerview和tablecornerbutton背景色为透明。大概又要设置边框了。
如何使用背景图片设置QTableWidget的左上角?现在它是白色的。 (在下图中指着)
这是我的风格sheet代码:
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;
}
您必须使用自定义 row-headers 列:
- 禁用内置行 headers 列,
- 添加一列来保存行号,
- 定义插槽以在行为 added/removed 和 select 行时更新行 ID,更改其字体等,
- 最后设置要在 column=0 列 header 中使用的小部件。
对我来说,在 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_()
结果(取决于您使用的样式表行):
左图:设置小部件、headerview 和 tablecornerbutton 背景颜色有效
Center image: 设置widget背景图,尝试设置headerview和tablecornerbutton背景图无效
右图:设置widget背景图片,设置headerview和tablecornerbutton背景色为透明。大概又要设置边框了。