Qt6.0 qproperty-*不生效原因

qt的qss样式是可以使用基本属性和property属性的,比如我们想改变组件的minimumSize有两种方法

1.代码里写

qLabel->setMinimumSize (100,200);

2.qss里写

QLabel{
    qproperty-minimumSize:100px 200px;
}

但是咧,你会发现有些property属性写了不生效,比如说(它用了枚举值)

QLabel{
    qproperty-alignment:AlignCenter;
}

在有些论坛里有说是可以这么写的
Qt6.0 qproperty-*不生效原因_第1张图片

什么原因呢?估计是在旧版本里Qt对AlignCenter字符串做了解析,新版本里不再识别它了,那么怎么解决呢?使用Qt::AlignCenter或Qt.AlignCenter?都是不行的,我们知道枚举值默认情况下都是int型的,那么我们直接设置int是不是就可以?

ok,那么我们打印下AlignCenter的值

qDebug() << Qt::AlignCenter << static_cast(Qt::AlignCenter);

image.png

QLabel{
background-color:red;
qproperty-alignment:132;
}

image.png

ok,它生效了~

你可能感兴趣的:(qt)