zoukankan      html  css  js  c++  java
  • qt QDockWidget QStackWidget的简单使用

    stackdlg.h 

    #ifndef STACKDLG_H
    #define STACKDLG_H
    
    #include <QtWidgets/QDialog>
    #include <QListWidget>
    #include <QStackedWidget>
    #include <QLabel>
    #include "ui_stackdlg.h"
    
    class StackDlg : public QDialog
    {
    	Q_OBJECT
    
    public:
    	StackDlg(QWidget *parent = 0);
    	~StackDlg();
    
    private:
    	Ui::StackDlgClass ui;
    	QListWidget *list;
    	QStackedWidget *stack;
    	QLabel *label1;
    	QLabel *label2;
    	QLabel *label3;
    };
    
    #endif // STACKDLG_H
    

    stackdlg.cpp 

    #include "stackdlg.h"
    #include <QHBoxLayout>
    
    StackDlg::StackDlg(QWidget *parent)
    	: QDialog(parent)
    {
    	ui.setupUi(this);
    	setWindowTitle("StackWidget");
    	list = new QListWidget(this);
    	list->insertItem(0, "windows1");
    	list->insertItem(1, "windows2");
    	list->insertItem(2, "windows3");
    
    	label1 = new QLabel("label1");
    	label2 = new QLabel("label2");
    	label3 = new QLabel("label3");
    
    	stack = new QStackedWidget(this);
    	stack->addWidget(label1);
    	stack->addWidget(label2);
    	stack->addWidget(label3);
    	
    	QHBoxLayout *mainLayout = new QHBoxLayout(this);
    	mainLayout->setMargin(5);
    	mainLayout->setSpacing(5);
    	mainLayout->addWidget(list);
    	mainLayout->addWidget(stack, 0, Qt::AlignHCenter);
    	mainLayout->setStretchFactor(list, 1);
    	mainLayout->setStretchFactor(stack, 3);
    
    	connect(list, SIGNAL(currentRowChanged(int)), stack, SLOT(setCurrentIndex(int)));
    }
    
    StackDlg::~StackDlg()
    {
    
    }
    



    qdock.cpp 

    #include "qdock.h"
    #include <QTextEdit>
    #include <QDockWidget>
    Qdock::Qdock(QWidget *parent)
    	: QMainWindow(parent)
    {
    	ui.setupUi(this);
    	setWindowTitle("Test");
    	QTextEdit *te = new QTextEdit(this);
    	te->setText("Main Window");
    	te->setAlignment(Qt::AlignCenter);
    	setCentralWidget(te);
    
    	QDockWidget *dock = new QDockWidget("Dock Window1", this);
    	dock->setFeatures(QDockWidget::DockWidgetMovable);
    	dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
    	QTextEdit *te1 = new QTextEdit;
    	te1->setText("Dock Window1");
    	dock->setWidget(te1);
    	addDockWidget(Qt::RightDockWidgetArea, dock);
    
    	dock = new QDockWidget("Dock Window2", this);
    	dock->setFeatures(QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetFloatable);
    	QTextEdit *te2 = new QTextEdit;
    	te2->setText("Dock Window2");
    	dock->setWidget(te2);
    	addDockWidget(Qt::RightDockWidgetArea, dock);
    
    	dock = new QDockWidget("Dock Window3", this);
    	dock->setFeatures(QDockWidget::AllDockWidgetFeatures);
    	QTextEdit *te3 = new QTextEdit;
    	te3->setText("Dock Windo3");
    	dock->setWidget(te3);
    	addDockWidget(Qt::RightDockWidgetArea, dock);
    
    
    }
    
    Qdock::~Qdock()
    {
    
    }
    



    Keep it simple!
    作者:N3verL4nd
    知识共享,欢迎转载。
  • 相关阅读:
    RabbitMQ
    连接池,为什么要使用连接池?
    mac 安装arcanist
    感触
    UDP socket
    Servlet过滤器
    PL、SQL
    springmvc 文件上传实现(不是服务器的)
    注解spring
    excel工具类
  • 原文地址:https://www.cnblogs.com/lgh1992314/p/5834812.html
Copyright © 2011-2022 走看看