[QT]QT教程之執行個體分析[五]堆棧表單 (QStackedWidget)

來源:互聯網
上載者:User

重點知識已近在代碼裡注釋...

請仔細看代碼

本文原創.

轉載請保留此連結 http://blog.csdn.net/siren0203

 

標頭檔

stack.h

#ifndef STACK_H<br />#define STACK_H<br />#include <QDialog><br />#include <QObject><br />class QLabel;<br />class QListWidget;<br />class QStackedWidget;<br />class StackDlg:public QDialog{<br /> Q_OBJECT<br />public:<br /> StackDlg(QWidget *parent=0);<br /> QLabel *label1;<br /> QLabel *label2;<br /> QLabel *label3;<br /> QListWidget *list;<br /> QStackedWidget *stack;<br />};</p><p>#endif // STACK_H<br />

 

實現代碼

main.cpp

#include <QApplication><br />#include <QStackedWidget><br />#include <QListWidget><br />#include <QHBoxLayout><br />#include <QLabel><br />#include "stack.h"</p><p>StackDlg::StackDlg(QWidget *parent):QDialog(parent){<br /> setWindowTitle(tr("Stacked Widget"));<br /> //建立ComboBox 並插入三個選項<br /> list=new QListWidget(this);<br /> list->insertItem(0,tr("window 0"));<br /> list->insertItem(1,tr("window 1"));<br /> list->insertItem(2,tr("window 3"));<br /> //建立堆棧視窗顯示的三層表單<br /> label1=new QLabel(this);<br /> label1->setText("this is label1");<br /> label2=new QLabel(this);<br /> label2->setText("this is label2");<br /> label3=new QLabel(this);<br /> label3->setText("this is label3");<br /> //建立一個 堆棧表單<br /> stack=new QStackedWidget(this);<br /> //將LABEL表單添加到 堆棧表單<br /> stack->addWidget(label1);<br /> stack->addWidget(label2);<br /> stack->addWidget(label3);<br /> //布局管理<br /> QHBoxLayout *layout=new QHBoxLayout();<br /> layout->addWidget(list); //添加list<br /> layout->addWidget(stack); //添加stack<br /> layout->setStretchFactor(list,1);//設定 list所佔的位置<br /> layout->setStretchFactor(stack,3);//設定 stack所佔的位置<br /> layout->setMargin(5);<br /> layout->setSpacing(10);<br /> //將ComboBox 變化訊號 關聯到 堆棧表單槽<br /> connect(list,SIGNAL(currentRowChanged(int)),stack,SLOT(setCurrentIndex(int)));<br /> setLayout(layout);<br />}</p><p>int main(int argc,char ** argv){<br /> QApplication app(argc,argv);<br /> StackDlg dlg;<br /> dlg.show();<br /> return app.exec();<br />}<br />

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.