在Qt中通过setStyleSheet()设置样式的问题?

时间:2014-05-27 12:03:11

标签: qt qtstylesheets

我尝试使用setStyleSheet()封装自定义组合框。如何将此处描述的所有样式customizing-qcombobox应用于 QComboBox 对象?当我努力实现目标时,我遇到了麻烦。

我知道我可以在必要时使用以下内容添加样式:ui.comboxFps->setStyleSheet(ui.comboxFps->styleSheet().append(QString("some styles you need to set")));

我遇到了一个问题,如下所述。像ui.comboxFps->setStyleSheet(ui.comboxFps->styleSheet().append(QString("color:red;"))); 这样的事情运作良好。

但是:ui.comboxFps->setStyleSheet(ui.comboxFps->styleSheet().append(QString("QComboBox{color:red;} QComboBox::down-arrow:on { left: 1px;}"))); QComboBox {没有功能。

我以另一种方式尝试过。

QFile styleFile( ":Resources/comboxStyle.qss" ); styleFile.open( QFile::ReadOnly ); QString style( styleFile.readAll() ); ui.comboxFps->setStyleSheet( style );

comboxStyle.qss 类似于customizing-qcombobox。它也没有用。

1 个答案:

答案 0 :(得分:0)

我发现了遇到的问题。 (假设 btnTest QPushButton 对象)

当你通过 Qt-Designer styleSheet 属性设置样式时, QWidget styleSheet()返回QString,如color: gray;border-width:1px;border-style:solid;border-radius:3px; whitout preffix和后缀QPushButton{……}。然后btnTest->setStyleSheet(btnTest->styleSheet().append(QString(QPushButton{border:url(……correct image path);})))功能不正常,正确的是btnTest->setStyleSheet( QString("{") + btnTest->styleSheet()+ QString("}") + QString("QPushButton{border:url(……correct image path);}") )。请注意 QString( “{”) QString(“}”)