zoukankan      html  css  js  c++  java
  • Qt使用QStackedWidget实现堆栈窗口

     

    Qt使用QStackedWidget实现堆栈窗口

    分类: QT

    堆栈窗口可以根据选择项的不同显示不同的窗体

    1. // stackeddlg.h  
    2. #ifndef STACKEDDLG_H  
    3. #define STACKEDDLG_H  
    4.   
    5. #include <QDialog>  
    6. #include <QLabel>  
    7. #include <QListWidget>  
    8. #include <QStackedWidget>  
    9.   
    10. class StackedDlg : public QDialog  
    11. {  
    12.     Q_OBJECT  
    13. public:  
    14.     explicit StackedDlg(QWidget *parent = 0);  
    15. signals:  
    16. public slots:  
    17.   
    18. private:  
    19.     QLabel *textLabel;  
    20.     QLabel *showLabel;  
    21.     QLabel *aboutLabel;  
    22.     QListWidget *list;  
    23.     QStackedWidget *stack;  
    24. };  
    25. #endif // STACKEDDLG_H  


     

    1. //stackeddlg.cpp  
    2. #include "stackeddlg.h"  
    3. #include <QHBoxLayout>  
    4.   
    5. StackedDlg::StackedDlg(QWidget *parent) :  
    6.     QDialog(parent)  
    7. {  
    8.     //创建一个QListWidget控件 并向其中添加列表项  
    9.     list = new QListWidget();  
    10.     list->insertItem(0, tr("文本窗口"));  
    11.     list->insertItem(1, tr("显示窗口"));  
    12.     list->insertItem(2, tr("关于窗口"));  
    13.       
    14.     textLabel = new QLabel(tr("学习使用堆栈窗口"));  
    15.     showLabel = new QLabel(tr("仅仅是一个示例程序"));  
    16.     aboutLabel = new QLabel(tr("欢迎交流,共同学习"));  
    17.       
    18.     //创建QStackedwidget控件  
    19.     stack = new QStackedWidget();  
    20.     //将控件添加到堆栈窗口中  
    21.     stack->addWidget(textLabel);  
    22.     stack->addWidget(showLabel);  
    23.     stack->addWidget(aboutLabel);  
    24.       
    25.     //使用一个水平布局管理器对对话框进行布局  
    26.     QHBoxLayout *mainLayout = new QHBoxLayout(this);  
    27.     mainLayout->addWidget(list);  
    28.     mainLayout->addWidget(stack, 0, Qt::AlignHCenter);  
    29.     //设置mainLayout的边框与对话框边缘的距离  
    30.     mainLayout->setMargin(5);  
    31.     mainLayout->setSpacing(5);  
    32.     //信号与槽的连接,实现按选择显示窗体  
    33.     //此处堆栈窗口的index按插入的顺序从0依次排序,与QListWidget的条目排序一致  
    34.     connect(list, SIGNAL(currentRowChanged(int)), stack, SLOT(setCurrentIndex(int)));  
    35.       
    36.     this->setWindowTitle(tr("堆栈窗口"));  
    37. }  


     

    1. //main.cpp  
    2. #include <QApplication>  
    3. #include <QTextCodec>  
    4. #include "stackeddlg.h"  
    5. int main(int argc, char *argv[])  
    6. {  
    7.     QTextCodec::setCodecForTr(QTextCodec::codecForLocale());  
    8.     QApplication app(argc, argv);  
    9.     StackedDlg dlg;  
    10.     dlg.show();  
    11.     return app.exec();  
    12. }  
  • 相关阅读:
    观察者模式
    php中compact,extract,list函数的使用
    加密解密
    python 线程池proxypool
    python qq音乐下载
    python 网易云音乐
    python 知识点
    python 格式化 header
    python 爬取百度图片
    php 过滤掉多维数组空值
  • 原文地址:https://www.cnblogs.com/584709796-qq-com/p/4968880.html
Copyright © 2011-2022 走看看