QTabWidget 使用小記


轉載自http://www.cnblogs.com/hicjiajia/archive/2012/05/30/2526829.html

哈哈,這個暑假在家里學習Qt,有了一些理論知識后,就想動手搞個什么小東西,在Qt Demo中看到了一個簡單的文本編輯器,我就研究它了,當然Qt帶的這個例子功能十分簡單,經過幾天不斷的摸索和實踐我也搞了一個類似的,不過功能要強大,而且比Windows 默認帶的那個記事本也要強,呵呵,后來就想繼續擴充功能,時下十分流行的那個功能“一個窗口多個標簽頁顯示”就如IE8那種,可以在一個窗口打開多個網頁,在Qt中當然要用QTabWidget,但是據我所知這個控件並沒有提供關閉按鈕,這個很麻煩了,google一晚上,在國外某個論壇上看到了解決方案:在Qt 4.5 中 QTabWidget 多了一個屬性 tabsClosable ,將其設置為True即可出現關閉按鈕。

默認情況下,每個標簽上的關閉按鈕是沒有任何響應的,我們需要自己動手為他添加關閉響應。

關閉信號為   void tabCloseRequested(int index)

關閉函數為    void removeTab(int index)

注意關閉標簽的是一個普通公共函數,不是槽函數,不可以直接與信號相連,我們需要自己手動定義個接受 int類型的槽函數,然后把參數再傳遞給關閉函數。

復制代碼
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QTabWidget>
#include <QTextEdit>
MainWindow::MainWindow(QWidget *parent) :
                    QMainWindow(parent),
                   ui(new Ui::MainWindow)
{
     ui->setupUi(this);
     connect(ui->tabWidget,SIGNAL(tabCloseRequested(int)),this,SLOT(removeSubTab(int)));
}

MainWindow::~MainWindow()
{
     delete ui;
}

void MainWindow::removeSubTab(int index)
{
      ui->tabWidget->removeTab(index);
}

void MainWindow::on_pushButton_clicked()
{
      QTextEdit *edit=new QTextEdit;
      ui->tabWidget->addTab(edit,"hitemp 1");
}
復制代碼

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM