首页| 论坛| 消息

标题:关于QComboBox在点击下拉框出现下拉框位置移动
作者:lwei24
日期:2022-02-21 15:30
内容:

如题,在Qt5使用QComboBox声明一个对象并初始化后,点击它的下拉框时,下拉框不是在点击的位置出现,而是自己偏移到其他地方导致点击的位置和下拉框的位置出现位移,定位很久,也没有找到原因,请各位大佬,给点帮助,小弟在此多谢了!


#1 [uidab 02-22 08:20]
搞一个最小代码的示例。
#2 回 uidab 的帖子 [lwei24 02-22 09:19]
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在点击下拉框时,让它不会出现位置偏移。
#3 回 uidab 的帖子 [lwei24 02-22 09:33]
uidab:搞一个最小代码的示例。 (2022-02-22 08:20) 
谢谢,刚刚通过安装过滤器,已经解决这个问题了!

回复 发表
主题 版块