最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

QTabWidget標(biāo)簽實現(xiàn)雙擊關(guān)閉的方法(推薦)

 更新時間:2016年06月17日 17:07:25   投稿:mrr  
這篇文章主要介紹了QTabWidget標(biāo)簽實現(xiàn)雙擊關(guān)閉的方法(推薦)的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下

用Qt做ARM,發(fā)現(xiàn)Qt4中QTabWidget原生的關(guān)閉按鍵(X)太小,用觸摸板很難按到。于是乎想到類似于瀏覽器的雙擊關(guān)閉功能,因為之前做過C#的資源管理器,以為可以直接綁定DoubleClick,可后來翻遍了也沒找到相應(yīng)的SLOT,結(jié)果在QWidget中捕捉信號,就是沒有QTabWidget標(biāo)簽的鼠標(biāo)事件,坑爹那!隨后,又在網(wǎng)上各種搜索,結(jié)果找到的是各種問題,每一個準(zhǔn)確回答出來的.....最后思來想去,實在不行,就用最笨的方法,仿Hock實現(xiàn)!

于是乎,我重載了QTabWidget(由于tabBar()是protected,坑爹啊?。?,這樣就可以獲取到標(biāo)簽了。

class Tab : public QTabWidget
 {
 Q_OBJECT
 public:
 Tab(QWidget *parent = );
 QTabBar* GetBar();
 protected:
 void mousePressEvent(QMouseEvent *event);
 }; 

然后在實現(xiàn)一個事件過濾器,首先判斷事件是雙擊事件,然后判斷是否為標(biāo)簽位置,如果是則刪除當(dāng)前標(biāo)簽頁,由于雙擊事件中必觸發(fā)單擊,即標(biāo)簽頁選中事件,因此無需考慮雙擊其他標(biāo)簽頁引起的index變更問題。

#ifndef MYEVENTFILTER_H
 #define MYEVENTFILTER_H
 #include <QMainWindow>
 #include <QMouseEvent>
 #include "tab.h"
 extern int tabindex_current;
 extern int tabindex_old;
 extern Tab *tabWidget;
 extern QPoint tableft;
 extern int tabwidth;
 extern int tabheight;
 //實現(xiàn)雙擊關(guān)閉Tab標(biāo)簽
 class myEventFilter: public QObject
 {
 public:
 myEventFilter():QObject()
 {};
 ~myEventFilter(){};
 bool eventFilter(QObject* object,QEvent* event)
 {
 if (event->type()==QEvent::MouseButtonDblClick)
 {
  QMouseEvent *e = static_cast<QMouseEvent*>(event);
  QPoint pos = e->pos();
  int x = tableft.x();
  int x = tableft.x()+tabwidth;
  int y = tableft.y();
  int y = tableft.y()+tabheight;
  if (pos.x() >= x && pos.y() >= y && pos.x() <= x && pos.y() <= y)
  tabWidget->removeTab(tabindex_current);
 }
 return QObject::eventFilter(object,event);
 };
 };
 #endif // MYEVENTFILTER_H 

最后綁定到主函數(shù)main中,這樣就可捕捉到所有的事件了:

qApp->installEventFilter(new myEventFilter());

另外,需在標(biāo)簽頁切換時更新寬度信息(高度無需更新):

 void MainWindow::updateBar()
 {
 tabindex_current = tabWidget->currentIndex();
 tabindex_old = tabindex_current;
 QTabBar *bar = tabWidget->GetBar();
 if (bar->size().width() > )
  tabwidth = bar->size().width();
 }

以上所述是小編給大家介紹的QTabWidget標(biāo)簽實現(xiàn)雙擊關(guān)閉的方法(推薦),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Spring Security賬戶與密碼驗證實現(xiàn)過程

    Spring Security賬戶與密碼驗證實現(xiàn)過程

    這篇文章主要介紹了Spring Security賬戶與密碼驗證實現(xiàn)過程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-03-03
  • 基于Spring5實現(xiàn)登錄注冊功能

    基于Spring5實現(xiàn)登錄注冊功能

    這篇文章主要為大家詳細(xì)介紹了基于Spring5實現(xiàn)登錄注冊功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • Java中的延遲隊列DelayQueue詳細(xì)解析

    Java中的延遲隊列DelayQueue詳細(xì)解析

    這篇文章主要介紹了Java中的延遲隊列DelayQueue詳細(xì)解析,JDK自身支持延遲隊列的數(shù)據(jù)結(jié)構(gòu),其實類:java.util.concurrent.DelayQueue,<BR>我們通過閱讀源碼的方式理解該延遲隊列類的實現(xiàn)過程,需要的朋友可以參考下
    2023-12-12
  • Java SpringBoot實現(xiàn)文件上傳功能的示例代碼

    Java SpringBoot實現(xiàn)文件上傳功能的示例代碼

    這篇文章主要介紹了如何利用Java SpringBoot實現(xiàn)文件上傳功能,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)有一定幫助,需要的可以參考一下
    2022-03-03
  • JAVA中的SPI思想介紹

    JAVA中的SPI思想介紹

    大家好,本篇文章主要講的是JAVA中的SPI思想介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • java遠程連接Linux執(zhí)行命令的3種方式完整代碼

    java遠程連接Linux執(zhí)行命令的3種方式完整代碼

    在一些Java應(yīng)用程序中需要執(zhí)行一些Linux系統(tǒng)命令,例如服務(wù)器資源查看、文件操作等,這篇文章主要給大家介紹了關(guān)于java遠程連接Linux執(zhí)行命令的3種方式,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-06-06
  • Java反轉(zhuǎn)數(shù)組輸出實例代碼

    Java反轉(zhuǎn)數(shù)組輸出實例代碼

    這篇文章主要給大家介紹了關(guān)于Java反轉(zhuǎn)數(shù)組輸出以及利用Java實現(xiàn)字符串逆序輸出的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • spring裝配bean的3種方式總結(jié)

    spring裝配bean的3種方式總結(jié)

    這篇文章主要給大家介紹了關(guān)于spring裝配bean的3種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者使用Spring具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Java基礎(chǔ)之Object類詳解

    Java基礎(chǔ)之Object類詳解

    這篇文章主要介紹了Java基礎(chǔ)之Object類詳解,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-05-05
  • springboot+redis+阿里云短信實現(xiàn)手機號登錄功能

    springboot+redis+阿里云短信實現(xiàn)手機號登錄功能

    這篇文章主要介紹了springboot+redis+阿里云短信實現(xiàn)手機號登錄功能,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-01-01

最新評論

饶平县| 唐山市| 高淳县| 金昌市| 彭州市| 河津市| 登封市| 台中市| 调兵山市| 德令哈市| 志丹县| 钦州市| 盖州市| 东山县| 年辖:市辖区| 民权县| 华阴市| 阳泉市| 大同市| 奉节县| 中方县| 驻马店市| 泸溪县| 明光市| 余干县| 洛隆县| 古丈县| 荣昌县| 兴宁市| 洛宁县| 福建省| 陇西县| 邢台县| 资中县| 宣武区| 石河子市| 水富县| 哈尔滨市| 宁武县| 安溪县| 墨竹工卡县|