堆棧窗口可以根據(jù)選擇項(xiàng)的不同顯示不同的窗體
// stackeddlg.h #ifndef STACKEDDLG_H #define STACKEDDLG_H #include <QDialog> #include <QLabel> #include <QListWidget> #include <QStackedWidget> class StackedDlg : public QDialog { Q_OBJECT public: explicit StackedDlg(QWidget *parent = 0); signals: public slots: private: QLabel *textLabel; QLabel *showLabel; QLabel *aboutLabel; QListWidget *list; QStackedWidget *stack; }; #endif // STACKEDDLG_H
//stackeddlg.cpp #include "stackeddlg.h" #include <QHBoxLayout> StackedDlg::StackedDlg(QWidget *parent) : QDialog(parent) { //創(chuàng)建一個(gè)QListWidget控件 并向其中添加列表項(xiàng) list = new QListWidget(); list->insertItem(0, tr("文本窗口")); list->insertItem(1, tr("顯示窗口")); list->insertItem(2, tr("關(guān)于窗口")); textLabel = new QLabel(tr("學(xué)習(xí)使用堆棧窗口")); showLabel = new QLabel(tr("僅僅是一個(gè)示例程序")); aboutLabel = new QLabel(tr("歡迎交流,共同學(xué)習(xí)")); //創(chuàng)建QStackedwidget控件 stack = new QStackedWidget(); //將控件添加到堆棧窗口中 stack->addWidget(textLabel); stack->addWidget(showLabel); stack->addWidget(aboutLabel); //使用一個(gè)水平布局管理器對(duì)對(duì)話框進(jìn)行布局 QHBoxLayout *mainLayout = new QHBoxLayout(this); mainLayout->addWidget(list); mainLayout->addWidget(stack, 0, Qt::AlignHCenter); //設(shè)置mainLayout的邊框與對(duì)話框邊緣的距離 mainLayout->setMargin(5); mainLayout->setSpacing(5); //信號(hào)與槽的連接,實(shí)現(xiàn)按選擇顯示窗體 //此處堆棧窗口的index按插入的順序從0依次排序,與QListWidget的條目排序一致 connect(list, SIGNAL(currentRowChanged(int)), stack, SLOT(setCurrentIndex(int))); this->setWindowTitle(tr("堆棧窗口")); }
//main.cpp #include <QApplication> #include <QTextCodec> #include "stackeddlg.h" int main(int argc, char *argv[]) { QTextCodec::setCodecForTr(QTextCodec::codecForLocale()); QApplication app(argc, argv); StackedDlg dlg; dlg.show(); return app.exec(); }
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
