【问题标题】:how to use a variable that contains a file path in qt StyleSheet如何在qt StyleSheet中使用包含文件路径的变量
【发布时间】:2018-01-04 14:23:53
【问题描述】:

使用包含样式表中的文件路径的 qstring 变量的任何方式,例如

connect(ui->comboBox, SIGNAL(currentIndexChanged(QString)),
ui->listWidget ,SLOT(setStyleSheet("border-image: url("QString");")));

【问题讨论】:

  • 那不是一个有效的连接语句!?您需要先将 setStyleSheet 代码放在适当的插槽中,或者使用 lambda。然后你可以构造一个有效的 CSS 字符串并使用它。

标签: qt variables stylesheet


【解决方案1】:

我猜你可以访问 Qt 5 和 C++11,然后你可以使用 lambda Slot,但由于 QComboBox::currentIndexChanged 被重载,所以使用 QString 重载会有点复杂。

试试这个,我使用QString::arg 方法来构建你的 CSS 字符串,这通常比简单的字符串连接更具可读性。它只是将%1 替换为第一个参数。

connect(comboBox, QOverload<const QString &>::of(&QComboBox::currentIndexChanged),
    [=](const QString &imagePath) { 
        ui->listWidget->setStyleSheet(QString("border-image: url(\"%1\");").arg(imagePath));
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-18
    • 1970-01-01
    • 2011-05-19
    • 1970-01-01
    • 2022-07-10
    • 1970-01-01
    • 2020-11-04
    • 2013-09-16
    相关资源
    最近更新 更多