您的位置:首页 > 编程语言 > Qt开发

QTabWidget 双击 关闭tab标签

2015-07-02 22:59 567 查看
QTabWidget 双击tab标签关闭对应的tab页 步骤:

1、重写QTabWidget

2、调用tabBar()【因为该方法是受保护的,所以要重写】 获得tabbar,保存为m_bar 成员变量
m_bar = tabBar();


3、m_bar->installEventFilter(this); 给tabbar添加到事假过滤器

4、重写bool eventFilter(QObject *obj, QEvent *ev); 在这里面判断m_bar的双击事件; tabwidget的当前tab页就是被双击的tab标签;

[code]bool TabWidget::eventFilter(QObject *obj, QEvent *event)
{
    if (obj == m_bar) {
         if (event->type() == QEvent::MouseButtonDblClick) {
             int index= currentIndex();//当前被点击的tab标签
             QString str = tabText(index);
             remove(index);
             return true;
         } else {
             return false;
         }
     } else {
         // pass the event on to the parent class
         return QTabWidget::eventFilter(obj, event);
     }
}


5、qtdesigner创建的.ui文件中的控件也可以继承自重写的类,






6、以上是qt4的,从qt5.2开始QTabWidget 就有void tabBarDoubleClicked(int index)双击tabbar的信号了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: