为了让样式表保持动态的DPI设置,我想从代码中设置它的某些部分。
这有效:
my_label->setStyleSheet( QString( "font-size: 30px;" ) );
然而,这并不是:
my_label->setStyleSheet( QString( "font-size: %1px;" ).arg( 30 ) );
任何人都可以启发我,为什么会这样?运行Qt 5.7。
答案 0 :(得分:2)
问题是两件事的结合:
虽然我尝试了不同的组合(整数值(30),先转换为QString),但我没有尝试使用整数值并将其转换为QString。 所以每个人都是对的。感谢您的耐心等待。
答案 1 :(得分:-1)
将数字转换为字符串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);
}
}