• 5093阅读
  • 2回复

[提问]QTabBar事件的触发条件 [复制链接]

上一主题 下一主题
离线wchflchy
 
只看楼主 倒序阅读 楼主  发表于: 2012-11-20
需求:
       点击QTabBar,触发QTabBar的mousePressEvent和mouseMoveEvent事件。
我的操作:
       我在做测试的时候,只是重写了事件(只有函数定义部分,函数体内为空),并在事件函数体部分设置了断点,但是无论怎么操作,都触发不了QTabBar的事件,请问一下,要触发QTabBar事件,需要怎么做?
具体代码(代码都在mainwindow文件中):
(省略引用头文件部分)
class QTabBar;
class Test:Public QMainWindow
{
}

void QTabBar::mousePressEvent(QMousePressEvent *event)
{
}

void QTabBar::mouseMoveEvent(QMouseMoveEvent *event)
{
}
QT新手上路
离线wchflchy
只看该作者 1楼 发表于: 2012-11-20
回 楼主(wchflchy) 的帖子
补充一下,我用的是Window7+VS2008+QTSDK4.7.4
QT新手上路
离线pxiao_xiao

只看该作者 2楼 发表于: 2013-03-01
QMainWindow 只能重写QMainWindow的MOUSE事件
你可以如下:
QList<QTabBar* > tab = qFindChildren<QTabBar* >(this);
tab[0]->installEventFilter(this);
然后
bool QFrmMain::eventFilter(QObject *target, QEvent *aEvent)
{
    if (target == tab[0] && aEvent->type() == QEvent::MouseButtonPress)      
    {
        //...................
    }
}
快速回复
限100 字节
 
上一个 下一个