您的位置:首页 > 编程语言 > Qt开发

QComboBox下拉框虚线去除的两种处理方法

2016-09-23 11:26 281 查看
QComboBox控件在进行下拉选项选择时,会出现方形的虚线,让人看了很不自在。那么,这虚线怎么去掉呢?



方法一:在QSS样式表里可以设置(推荐此方法)



" QComboBox QAbstractItemView {"
"border: 1px solid darkgray;"
"border-radius:2px;"
"selection-background-color:blue ;"//鼠标划过时当前项的背景色
"outline:0px;"//去掉虚线
"}"


方法二:写一个类继承自QItemDelegate,重写以下虚函数(参照网上的方法)

void drawFocus(QPainter *painter, const QStyleOptionViewItem &option, const QRect &rect) const;


void GridDelegateLayout::drawFocus(QPainter *painter, const QStyleOptionViewItem &option,
const QRect &rect) const
{
Q_UNUSED (rect)
if (option.state & QStyle::State_HasFocus)
{
QPen penVal(Qt::white);
penVal.setWidth (1);
painter->setPen (penVal);
// painter->drawRect(rect);
}
}


然后调用:ui->comboBox->setItemDelegate(grid);grid是新写的类的对象。这种方法有点小问题,各项之间占据各自的空间,不好看。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Qt QComboBox去 QComboBox