constexpr const char* kCombox = R"(
QComboBox {
color:#95949D;
background:#333348;
border-radius:4px;
font: normal 12px 'Microsoft YaHei';
}
QComboBox::drop-down {
background:#333348;
border:none;
subcontrol-position:top right;
}
QComboBox::down-arrow {
image:url(./resource/roomset/combo_box_more.png);
}
QComboBox QAbstractItemView::item{
background:#1D1D33;
color:#FF95949D;
font:normal 12px 'Microsoft YaHei';
}
QComboBox QAbstractItemView::item:hover {
background:#233E5B;
color:#FF95949D;
}
)";
今天设置qss的样式,都没有效果
后来看到一篇解决办法:
需要设置这个才能对item有效:
void QComboBox::setView(QAbstractItemView *itemView)
Sets the view to be used in the combobox popup to the given itemView. The combobox takes ownership of the view.
Note: If you want to use the convenience views (like QListWidget, QTableWidget or QTreeWidget), make sure to call setModel() on the combobox with the convenience widgets model before calling this function.
将组合框弹出窗口中要使用的视图设置为给定的项视图。组合框拥有视图的所有权。
注意:如果要使用便利视图(如qlistwidget、qtablewidget或qtreewidget),请确保在调用此函数之前使用便利窗口小部件模型调用组合框中的setmodel()。
See also view()
m_cbxAudioOutDeviceList = new QComboBox;
m_cbxAudioOutDeviceList->setStyleSheet(RoomSettingStyle::kCombox);
m_cbxAudioOutDeviceList->setView(new QListView());