使用QSS自定义控件界面时,QT中控件QCombobox含有两个子控件drop-down和down-arrow.一般而言,当改变QCombox时,很多效果都会出来,但是,针对下拉按钮和下拉图标的自定义效果需要通过QComboBox::drop-down和QComboBox::down-arrow来定义.
下面我们将展示去除下拉按钮的下拉效果.

1 QComboBox{ 2 background:white; 3 } 4 QComboBox::drop-down { 5 border:none; 6 } 7 QComboBox::down-arrow { 8 image: url(:/ui/1downarrow.png); 9 }
这个代码就实现了去除下拉按钮,保留了下拉图标的方案.
1 #include "mainwindow.h" 2 #include "ui_mainwindow.h" 3 4 5 #include <QFile> 6 #include <QTextStream> 7 #include <QDebug> 8 MainWindow::MainWindow(QWidget *parent) : 9 QMainWindow(parent), 10 ui(new Ui::MainWindow) 11 { 12 ui->setupUi(this); 13 QFile myfile(":/ui/ui.qss"); 14 15 myfile.open(QIODevice::ReadOnly|QIODevice::Text); 16 QTextStream in(&myfile); 17 QString str = in.readAll(); 18 this->setStyleSheet(str); 19 20 } 21 22 MainWindow::~MainWindow() 23 { 24 delete ui; 25 }