• Qt之布局管理——堆栈窗体


    QStackedWidget类继承于QFrame类,用于堆栈窗体的管理。

    Public Slots:

    void setCurrentIndex( int index )            index参数的索引位置的部件,是可见的。(index默认为-1,表示堆栈为空)

    void setCurrentWidget( QWidget * widget )        widget参数指定的部件,是可见的。


    实现效果:

    image

    maindlg.h

    #ifndef MAINDLG_H
    #define MAINDLG_H
    
    #include <QtGui>
    
    
    class MainDlg : public QDialog
    {
    	Q_OBJECT
    
    public:
    	MainDlg(QWidget *parent = 0, Qt::WFlags flags = 0);
    	~MainDlg();
    
    private:
    	QLabel *lab1;
    	QLabel *lab2;
    	QLabel *lab3;
    	QListWidget *m_list;
    	QStackedWidget *stack;
    };
    
    #endif // MAINDLG_H
    

    maindlg.cpp

    #include "maindlg.h"
    
    
    MainDlg::MainDlg(QWidget *parent, Qt::WFlags flags)
    	: QDialog(parent, flags)
    {
    	setWindowTitle(tr("Stacked Widgets example"));
    
    	//左部的列表框:
    	m_list = new QListWidget;
    	m_list->insertItem(0,tr("Window 1"));
    	m_list->insertItem(1,tr("Window 2"));
    	m_list->insertItem(2,tr("Window 3"));
    
    	//右部的堆栈窗:
    	stack = new QStackedWidget(this);
    	lab1 = new QLabel(tr("This is window 1"));
    	stack->addWidget(lab1);
    	lab2 = new QLabel(tr("This is window 2"));
    	stack->addWidget(lab2);
    	lab3 = new QLabel(tr("This is window 3"));
    	stack->addWidget(lab3);	
    
    	//布局;
    	QHBoxLayout *mainLayout = new QHBoxLayout(this);
    	mainLayout->addWidget(m_list);
    	mainLayout->addWidget(stack,0,Qt::AlignHCenter);
    	mainLayout->setMargin(5);
    	mainLayout->setSpacing(5);
    	mainLayout->setStretchFactor(m_list,1);
    	mainLayout->setStretchFactor(stack,3);
    	connect(m_list,SIGNAL(currentRowChanged(int)),stack,SLOT(setCurrentIndex(int)));
    
    }
    
    MainDlg::~MainDlg()
    {
    
    }
    

  • 相关阅读:
    python 二维数组遍历
    WINFORM中treeview 节点显示不全
    C++函数式编程实现牛顿法
    C++函数式编程
    C++函数的重载
    默认形参值
    常量指针和指针常量
    C++值传递与引用传递
    C++变量和基本类型——2.3.1引用
    C++ 实参和形参
  • 原文地址:https://www.cnblogs.com/hanzhaoxin/p/2774356.html
Copyright © 2020-2023  润新知