我尝试使用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。它也没有用。
答案 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(“}”)。