QT开发中文网

QTreeWidget { background-image: url(:/png/liebiaobeijing.png); background-repeat: no-repeat; background-position: center; background-size: contain; border: 1px solid transparent; } QHeaderView::section { background-image: ...

您提供的样式表代码看起来很好,但有几个小地方需要注意,以确保背景图能够正确显示和拉伸:

1. 确保资源路径正确

请确保 :/png/liebiaobeijing.png:/png/liebiaotoubeijing.png 是有效的资源路径,已被正确添加到 Qt 的资源文件中。

2. QTreeWidget 背景图设置

您的代码已经在尝试设置 QTreeWidget 的背景图了。这里有一些建议供您参考:

QTreeWidget {
    background-image: url(:/png/liebiaobeijing.png);
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;  /* 使用 'cover' 来保证背景图充满整个控件 */
    border: 1px solid transparent; 
}

QHeaderView::section {
    background-image: url(:/png/liebiaotoubeijing.png);
    background-repeat: no-repeat;  // 添加这一行以避免标题部分重复
    background-position: center;     // 可选,根据需要进行调整
    height: 40px;                   // 设置头部高度,可根据实际需求调整
}

3. 注意事项

  • 透明边框:由于你使用了透明的边框,如果想让它显得更明显,可以考虑更改为可见的颜色。

  • 头部高度:为了让表头更加美观,可以设置一个固定的高度。

  • 背景拉伸效果:选择 background-size: cover; 可以确保图片充满整个控件,虽然这可能会裁剪一部分。如果希望看到完整的背景而不裁剪,则可以使用 contain,但是这样可能会导致空白区域。

  • 更新界面:在修改样式表后,请确保窗口或控件得到更新(如重绘),使样式生效。

示例完整代码

如果您将这些内容整合到一个简单示例程序中,它应该如下所示:

#include <QApplication>
#include <QTreeWidget>
#include <QHeaderView>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QTreeWidget treeWidget;
    treeWidget.setHeaderLabel("Sample Tree");

    // 添加示例项
    treeWidget.addTopLevelItem(new QTreeWidgetItem(QStringList() << "Item 1"));
    treeWidget.addTopLevelItem(new QTreeWidgetItem(QStringList() << "Item 2"));

    // 设置样式表,添加背景图片并拉伸
    treeWidget.setStyleSheet(
        "QTreeWidget {"
        "   background-image: url(:/png/liebiaobeijing.png);"
        "   background-repeat: no-repeat;"
        "   background-position: center;"
        "   background-size: cover;" 
        "   border: 1px solid transparent;"
        "}"
        "QHeaderView::section {"
        "   background-image: url(:/png/liebiaotoubeijing.png);"
        "   background-repeat: no-repeat;"
        "   background-position: center;"
        "   height: 40px;" 
        "}"); 

    treeWidget.setFixedSize(400, 300);
    
    // 显示窗口
    treeWidget.show();

    return app.exec();
}

通过以上方式,您可以使 QTreeWidget 和其表头应用自定义的背景图,并实现良好的视觉效果。


内容由零声教学AI助手提供,问题来源于学员提问

目录导航
  • 1. 确保资源路径正确
  • 2. QTreeWidget 背景图设置
  • 3. 注意事项
  • 示例完整代码
  • 本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
    转载请注明出处:https://qt.0voice.com/?id=13246

    分享:
    扫描分享到社交APP
    上一篇
    下一篇
    发表列表
    游客 游客
    此处应有掌声~
    评论列表

    还没有评论,快来说点什么吧~

    联系我们

    在线咨询: 点击这里给我发消息

    微信号:3007537140

    上班时间: 10:30-22:30

    关注我们
    x

    注册

    已经有帐号?