Qt進階--(嵌入式子窗口)QTabWidget,......

1.使用QTabWidget實現嵌入式子窗口:

1.1.添加子窗口(新頁面):

    int QTabWidget::addTab(QWidget * page, const QString & label):用給定的組件創建新的一頁返回添加的新頁面的索引;
    int insertTab(int index, QWidget *page, const QString &label):差不多

1.2.獲取頁面:

QWidget *widget(int index) const:返回指定索引的頁面(注意是頁面而不是子窗口,這是個坑,其實沒用,下面細說)
   

1.3.刪除頁面:


    void removeTab(int index):刪除指定索引的頁面
    

1.4.還有一大堆屬性方法就不多說了:int count() const,int currentIndex() const

1.5.坑與技巧

問題情境:假如我有個QPlainTextEdit類的(子窗口)控件,我已知頁面的索引要獲取這個控件中的值(也就是文本),

坑:那麼你使用QWidget *widget(int index)方法得到的QWidget對象是頁面,而不是子控件,就沒有toPlainString()方法,所以你竟然不能獲取子窗口對象?
解決方法:所以把子窗口聲明爲成員變量而不是局部變量:
 

//比如,聲明變量如下:
QPlainTextEdit* te[10];//因爲有多個子頁面,所以是二維指針,這個10是隨便寫的,是最大頁數;

//創建新頁面以及子窗口如下:
int count=ui->tabWidget->count();
te[count]=new QPlainTextEdit(ui->tabWidget);
ui->tabWidget->addTab(te[count],"新的一頁");

//這麼使用子窗口:
te[index]->toPlainText();

還有用其他控件實現子窗口的方法,有時間再更,最近考試

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章