【问题标题】:Add image just into a bottom or top in QT App with StyleSheet(QStyle)使用 StyleSheet(QStyle) 将图像添加到 QT App 的底部或顶部
【发布时间】:2011-08-18 08:02:43
【问题描述】:

如何使用样式表将图像添加到 QT 中表单的底部或顶部。 例如,我想添加您可以在下图中看到的图像,然后设置表单的填充:

图片链接: http://0000.2.img98.net/out.php/i11716_bg-header2.jpg

请用 CSS 命令解释一下。

【问题讨论】:

    标签: c++ qt stylesheet


    【解决方案1】:

    您可以使用 qss (css) 来实现。但是为了在您的自定义 QWidget 中启用样式表,您必须处理 Paint 事件。

    mywidget.cpp

    void QMyWidget::paintEvent(QPaintEvent *)
    {
        QStyleOption opt;
        opt.init(this);
        QPainter p(this);
        style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
    }
    

    在资源中添加你的css(qss)并添加别名,将用作加载的文件名。

    您可以在主窗口中添加此方法,以加载样式表。

    我的主窗口.cpp

    void QMyMainWindow::loadStyleSheet(QString path)
    {
        QFile data(path);
        QString style;
        if(!data.open(QFile::ReadOnly))
            return false;
    
        QTextStream styleIn(&data);
        style = styleIn.readAll();
        data.close();
    
        qApp->setStyleSheet(qApp->styleSheet().append(style));
    }
    

    然后用QSS(CSS)文件的资源别名调用这个函数。您可以在构造函数或 resize 事件(用于移动开发)中执行此操作,以跟踪和加载针对不同分辨率的不同样式。

    【讨论】:

    • 我已将此图片添加到我的资源中,但我想知道如何使用 CSS 来做到这一点。
    • 是的,也添加样式表。通过资源别名调用它们,并在 css 中:background-image: url('path_in_resource_to_img_alias');
    猜你喜欢
    • 2017-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-14
    • 1970-01-01
    • 2020-02-05
    相关资源
    最近更新 更多