想要
设置combox隐藏选
项,同时保证index不
改变,然后参考一些资料找到了使用QListView来
设置
QListView* view = qobject_cast<QListView*>(ui.comboBox->view());
view->setRowHidden(0, true);//隐藏为TRUE,显示为false
设置完成后comboBox中的选
项会被隐藏,但是还是可以被访问到,因为
滚轮滚动的时候还是可以访问到隐藏的选
项,所以,这种做法必须要
禁用滚轮才行。
PyQt QComboBox和QSpinBox禁止鼠标滚动自定义控件代码Qt Designer操作方法
自定义控件代码
新建 custom_widget.py文件,内容如下:
from PyQt5.QtCore import QEvent
from PyQt5.QtWidgets import QComboBox, QSpinBox
class CustomQCB(QComboBox):
def wheelEvent(self, e):
if e.type() == QEvent
QVariant v(0);
m_cbxMode->setItemData(1, v,
Qt::UserRole - 1);
m_cbxMode->setItemData(2, v,
Qt::UserRole - 1);
QVariant v(1 | 32);
主要思想就是:当进入滑轮的滚动事件的时候,就禁用该控件,而进入鼠标点击事件的时候,就将这个控件进行激活
如:spinBox控件,鼠标的过滤事件可以参考博客:https://blog.csdn.net/Littlehero_121/article/details/101376240
在.h文件中:
bool eventFilter(QObject *target, QEvent *eve...
//禁止滚轮事件
//只用这两行代码就可以禁用某个控件滚轮事件,不需要声明,直接写在cpp中;
void QComboBox::wheelEvent(QWheelEvent *e)
//禁止滚轮事件
//只用这两行代码就可以禁用某个控件滚轮事件,不需要声明,直接写在cpp中;
void QDateTimeEdit::wheelEvent(QWheelEvent *e)
//禁止滚轮事件
//只用这两行代码就可以禁用某个控件滚轮事件,不需要声明,直接写在cpp中;
void QAbstr.
做Qt界面经常会用到QComboBox控件去实现数据选择的功能,而且会将该控件置到ScrollArea的控件中,但是但滑动区域很长时,使用滚轮进行滚动是最方便的,但是光标滚到ComboBox控件时,会触发ComboBox的下拉事件。
在网上找了好久,都没有很好的解决方案,有几种方案试了都没有用。
1. 第一种想法是去重写QComboBox控件,或是设置,但是对于这种小功能去重写控件很不好控制。
2. 设置QComboBox的MouseTracking属性,或是设置FoucsPolicy为NoFocus
Qt动画框架:QAnimationGroup、QParallelAnimationGroup、QSequentialAnimationGroup、QPauseAnimation
youlingzuzhoushi:
QParallelAnimationGroup* animationGroup = new QParallelAnimationGroup();
animationGroup->addAnimation(animation1);
QPauseAnimation *pauseAnimation = new QPauseAnimation(1000);
animationGroup->addAnimation(pauseAnimation);
animationGroup->addAnimation(animation2);
animationGroup->start();
好像也没有加进去。insertPause函数又只能给QSequentialAnimationGroup用,QParallelAnimationGroup用不了
Qt动画框架:QAnimationGroup、QParallelAnimationGroup、QSequentialAnimationGroup、QPauseAnimation
youlingzuzhoushi:
QML类型:Image
去往火星: