如何使用背景图像设置QTableWidget左上角?

时间:2017-01-03 10:03:39

标签: python qt pyqt pyqt4 qtstylesheets

如何使用背景图像设置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;
}

2 个答案:

答案 0 :(得分: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

左图:设置widget,headerview和tablecornerbutton背景颜色

中心图片:设置小部件背景图片,尝试设置headerview和tablecornerbutton背景图片但没有效果

右图:设置窗口小部件背景图像,将headerview和tablecornerbutton背景颜色设置为透明。必须再次设置边界。

答案 1 :(得分:0)

您必须使用自定义行标题列:

  • 禁用内置行标题列
  • 添加一列来保存行号,
  • 定义插槽以在添加/删除行时更新行ID,并选择行,更改其字体等,
  • 最后设置要在column = 0列标题中使用的窗口小部件。