How to set QTableWidget upper left corner using a background image?

后端 未结 2 1533
小鲜肉
小鲜肉 2021-01-22 04:51

How to set QTableWidget upper left corner using a background image? Now it is white. (Pointed in the image below)

\"

相关标签:
2条回答
  • 2021-01-22 04:58

    For me, using PyQt4.13 on Windows, setting a background-color on the QTableWidget QTableCornerButton element in the Qt stylesheet has an effect but setting background-image has not. However, you can make the background-color transparent (rgba(0,0,0,0)) and then you see the background image of the widget shining through. The border should be set again to make it look nice.

    Code:

    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_()
    

    Results in (depending on which stylesheet line you use):

    Left image: set widget, headerview and tablecornerbutton background color works

    Center image: set widget background image, try to set headerview and tablecornerbutton background image but without effect

    Right image: set widget background image, set headerview and tablecornerbutton background color to transparent. Borders have to be set again probably.

    0 讨论(0)
  • 2021-01-22 05:22

    You will have to use a custom row-headers column:

    • disable the builtin row headers column,
    • add a column to hold row numbers,
    • define slots to update row ID when rows are added/removed and to select row, change its font etc,
    • and finally set the widget to be used in column=0 column header.
    0 讨论(0)
提交回复
热议问题