堆棧窗口可以根據選擇項的不同顯示不同的窗體
// 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)
{
//創建一個QListWidget控件 并向其中添加列表項
list = new QListWidget();
list->insertItem(0, tr("文本窗口"));
list->insertItem(1, tr("顯示窗口"));
list->insertItem(2, tr("關于窗口"));
textLabel = new QLabel(tr("學習使用堆棧窗口"));
showLabel = new QLabel(tr("僅僅是一個示例程序"));
aboutLabel = new QLabel(tr("歡迎交流,共同學習"));
//創建QStackedwidget控件
stack = new QStackedWidget();
//將控件添加到堆棧窗口中
stack->addWidget(textLabel);
stack->addWidget(showLabel);
stack->addWidget(aboutLabel);
//使用一個水平布局管理器對對話框進行布局
QHBoxLayout *mainLayout = new QHBoxLayout(this);
mainLayout->addWidget(list);
mainLayout->addWidget(stack, 0, Qt::AlignHCenter);
//設置mainLayout的邊框與對話框邊緣的距離
mainLayout->setMargin(5);
mainLayout->setSpacing(5);
//信號與槽的連接,實現按選擇顯示窗體
//此處堆棧窗口的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();
}
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

