问题描述
我们平时在使用Qt Creator对控件QComboBox的样式进行设置后,在运行程序启动界面时,发现设置的样式无效,效果如下:
/* 设置下拉菜单框的样式 */
QComboBox QAbstractItemView
{
border: 1px solid rgb(161,161,161); /* 下拉菜单框的边框样式 */
}
/* 设置下拉菜单中每项的样式 */
QComboBox QAbstractItemView::item
{
height: 20px; /* 下拉菜单每项的高度 */
}
/* 设置下拉菜单选中项的样式 */
QComboBox QAbstractItemView::item:selected
{
background-color: rgb(54, 98, 180); /* 下拉菜单选中项的背景色 */
}
解决办法
详细代码如下:
#include "link.h"
#include "ui_link.h"
#include <QPropertyAnimation>
#include <QEasingCurve>
#include <QStyledItemDelegate>
#include <QAbstractAnimation>
Link::Link(QWidget *parent) : QWidget(parent), ui(new Ui::Link) {
ui->setupUi(this);
// 设置界面为无边框样式
this->setWindowFlag(Qt::FramelessWindowHint);
// 设置背景透明
this->setAttribute(Qt::WA_TranslucentBackground);
// 调用函数,获取串口信息
listAvailablePorts();
ui->comboBox_2->setCurrentIndex(6); // 切换波特率为9600选择值
// 创建一个串口对象
serial = new QSerialPort(this);
// 用于定义QComboBox下拉列表的样式用,不定义的话,下拉列表的样式设置是无效的
ui->comboBox->setItemDelegate(new QStyledItemDelegate(this));
connectSignal(); // 调用初始化信号与槽函数
}