uidab:搞一个最小代码的示例。
(2022-02-22 08:20)
/*设置QComboBox样式*/
QComboBox
{
border:1px solid #C0DCF2;
border-radius:3px;
padding:2px;
background:#EAF7FF;
selection-background-color:#DEF0FE;
selection-color:#386487;
}
QComboBox:focus, QComboBox:hover
{
border:1px solid #C0DCF2;
}
QComboBox::down-arrow
{
image:url(:/qss/lightblue/add_bottom.png);
width:10px;
height:10px;
right:2px;
}
QComboBox::drop-down
{
subcontrol-origin:padding;
subcontrol-position:top right;
width:15px;
border-left-width:0px;
border-left-style:solid;
border-top-right-radius:3px;
border-bottom-right-radius:3px;
border-left-color:#C0DCF2;
}
QComboBox::drop-down:on
{
top:1px;
}
/*
QComboBox{
background:#EAF7FF;
}
*/
以上是我调用的QComboBox css。然后就直接在QWidget初始化QComboBox,便会出现点击下拉框时,下拉框出现位置偏移。经过分析,我重写了
void mousePressEvent(QMouseEvent *event) override;
void mouseMoveEvent(QMouseEvent *event) override;
这两个函数,但是如果不重写,我的QWidget就无法拖拽移动,目前真是不知道有什么办法可以优化这个QComboBox在点击下拉框时,让它不会出现位置偏移。