Qt 样式表和 QString::arg()

Qt stylesheet and QString::arg()

为了使样式表在 DPI 设置方面保持动态,我想从代码中设置它的某些部分。

这个有效:

my_label->setStyleSheet( QString( "font-size: 30px;" ) );

然而,这不是:

my_label->setStyleSheet( QString( "font-size: %1px;" ).arg( 30 ) );

谁能赐教,这是为什么? 运行Qt 5.7.

将数字转换为字符串,QString::number:

my_label->setStyleSheet(QString("QLabel{font-size: %1 px;}").arg(QString::number(30));

或者尝试使用 QFont,为此使用此通用函数:

void updateFontSize(QLabel* label, int fontSize) {
    QFont font = label->font();
    if (font.pointSize() != fontSize) {
        font.setPointSize(fontSize);
        label->setFont(font);
    }
}

这个问题是两件事的结合:

  1. 我需要先将值转换为字符串
  2. 在运行时传递给 arg() 的实际值有一个小数位,“30”只是为了测试

虽然我确实尝试了不同的组合(整数值 (30),首先转换为 QString),但我没有尝试使用整数值并将其一起转换为 QString。 所以每个人都说对了。感谢您的耐心等待。