• QT 利用ListWidget 和 StackedLayout 配合实现 分页 选项


    1. 如图, 左边为listwidget,右边为StackedLayout, 通过listwidget的不同选项,可以使右边的不同页显示出来。

    2. dialog.h

    #ifndef DIALOG_H
    #define DIALOG_H
    
    #include <QDialog>
    #include <QtGui>
    
    namespace Ui {
    class Dialog;
    }
    
    class Dialog : public QDialog
    {
        Q_OBJECT
        
    public:
        explicit Dialog(QWidget *parent = 0);
        ~Dialog();
        
    private:
        Ui::Dialog *ui;
    
        QListWidget *listWidget;
        QStackedLayout *stackedLayout;
        QHBoxLayout *mainLayout;
    
        QLabel *label1;
        QLabel *label2;
        QLabel *label3;
    
    };
    
    #endif // DIALOG_H
    

    3. dialog.cpp

    #include "dialog.h"
    #include "ui_dialog.h"
    
    Dialog::Dialog(QWidget *parent) :
        QDialog(parent),
        ui(new Ui::Dialog)
    {
        ui->setupUi(this);
    
        setWindowTitle("test stackedlayout");
        mainLayout = new QHBoxLayout;
    
        label1 = new QLabel("label1");
        label2 = new QLabel("label2");
        label3 = new QLabel("label3");
    
        listWidget = new QListWidget;
        listWidget->addItem(tr("item1"));
        listWidget->addItem(tr("item2"));
        listWidget->addItem(tr("item3"));
    
        stackedLayout = new QStackedLayout;
        stackedLayout->addWidget(label1);
        stackedLayout->addWidget(label2);
        stackedLayout->addWidget(label3);
    
        connect(listWidget, SIGNAL(currentRowChanged(int)),
                stackedLayout, SLOT(setCurrentIndex(int)));
        listWidget->setCurrentRow(0);
    
        mainLayout->addWidget(listWidget);
        mainLayout->addLayout(stackedLayout);
    
        setLayout(mainLayout);
    }
    
    Dialog::~Dialog()
    {
        delete ui;
    }
    



     

  • 相关阅读:
    排序与查找
    gdb
    编码风格
    数组
    结构体
    循环语句
    深入理解函数
    分支语句
    简单函数
    解决国内NPM安装依赖速度慢问题
  • 原文地址:https://www.cnblogs.com/xj626852095/p/3648224.html
Copyright © 2020-2023  润新知