• 1767阅读
  • 3回复

[讨论]关于QComboBox在点击下拉框出现下拉框位置移动 [复制链接]

上一主题 下一主题
离线lwei24
 

只看楼主 倒序阅读 楼主  发表于: 2022-02-21
如题,在Qt5使用QComboBox声明一个对象并初始化后,点击它的下拉框时,下拉框不是在点击的位置出现,而是自己偏移到其他地方导致点击的位置和下拉框的位置出现位移,定位很久,也没有找到原因,请各位大佬,给点帮助,小弟在此多谢了!
1条评分金钱+10
20091001753 金钱 +10 Qt 版本号? 2022-02-21
离线uidab

只看该作者 1楼 发表于: 2022-02-22
搞一个最小代码的示例。
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线lwei24

只看该作者 2楼 发表于: 2022-02-22
回 uidab 的帖子
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在点击下拉框时,让它不会出现位置偏移。

离线lwei24

只看该作者 3楼 发表于: 2022-02-22
回 uidab 的帖子
uidab:搞一个最小代码的示例。 (2022-02-22 08:20) 

谢谢,刚刚通过安装过滤器,已经解决这个问题了!
快速回复
限100 字节
 
上一个 下一个