Qt Set QTableView不带样式表的背景图像

Qt Set QTableView不带样式表的背景图像,qt,background-image,qtableview,Qt,Background Image,Qtableview,我想为我的QTableView设置背景图像 在函数内部,我创建了一个测试QWidget并应用了图像,它工作得非常完美。 我传入的fp_小部件是QTableView,问题来了。 该图像未显示/应用于QTableView void setBackgroundImage(QWidget *fp_widget, const QPixmap &image) { QPalette palette; palette.setBrush(QPalette::Back

我想为我的QTableView设置背景图像

在函数内部,我创建了一个测试QWidget并应用了图像,它工作得非常完美。 我传入的fp_小部件是QTableView,问题来了。 该图像未显示/应用于QTableView

void setBackgroundImage(QWidget *fp_widget, const QPixmap &image)
{            
    QPalette palette;
    palette.setBrush(QPalette::Background, image);
    fp_widget->setPalette(palette);

    QWidget *test = new QWidget;
    test->setPalette(palette);
    test->resize(800,800);
    test->show();
}

也许您不应该将图像设置为表视图,而应该设置为其视口?QTableView比普通的QWidget复杂得多。正如刚才的另一条评论所说,它继承了QAbstractScrollArea,该区域使用
viewport()
小部件进行实际显示。所以你可以试着在上面设置调色板。但是目前使用的QStyle可能会选择完全忽略你的调色板。。。。CSS可能会更好,因为它覆盖了任何平台样式(但你说没有CSS)。你有一个更完整的测试用例和一个表格可以使用吗?谢谢你的想法。。。我也尝试了viewport,但没有成功。是的,我需要在代码中设置它,因为图像来自数据库,而我在文件系统中没有使用样式表时可以使用的文件。也许你不应该将图像设置为表视图,而应该设置为其视口?QTableView比普通的QWidget复杂得多。正如刚才的另一条评论所说,它继承了QAbstractScrollArea,该区域使用
viewport()
小部件进行实际显示。所以你可以试着在上面设置调色板。但是目前使用的QStyle可能会选择完全忽略你的调色板。。。。CSS可能会更好,因为它覆盖了任何平台样式(但你说没有CSS)。你有一个更完整的测试用例和一个表格可以使用吗?谢谢你的想法。。。我也尝试了viewport,但没有成功。是的,我需要在代码中设置它,因为图像来自一个数据库,而我在文件系统中没有使用样式表时可以使用的文件。