Qt 布局管理之 堆栈窗体

简介: Qt 布局管理之 堆栈窗体

StackDlg.h

//
// Created by simp on 2022/3/29.
//
#ifndef STACKEDWIDGET_STACKDLG_H
#define STACKEDWIDGET_STACKDLG_H
#include <QListWidget>
#include <QString>
#include <QDialog>
#include <QStackedWidget>
#include <QLabel>
class StackDlg :public QDialog{
Q_OBJECT
public:
    explicit StackDlg(QWidget *parent=0);
    ~StackDlg() override;
private:
    QListWidget *list;
    QStackedWidget *stack;
    QLabel *label1;
    QLabel *label2;
    QLabel *label3;
};
#endif //STACKEDWIDGET_STACKDLG_H

StackDlg.cpp

//
// Created by simp on 2022/3/29.
//
#include "StackDlg.h"
#include <QHBoxLayout>
StackDlg::StackDlg(QWidget *parent): QDialog(parent) {
    setWindowTitle(tr("StackedWidget"));
list = new QListWidget(this);//新建一个QListWidget控件对象
//新建的QListWidget控件中插入三个条目 作为选择项
list->insertItem(0, tr("Window1"));
list->insertItem(1, tr("Window2"));
list->insertItem(2, tr("Window3"));
//创建三个QLabel标签控件对象,作为堆栈窗体需要显示的三层窗体
    label1 = new QLabel(tr("WindowTest1"));
    label2 = new QLabel(tr("WindowTest2"));
    label3 = new QLabel(tr("WindowTest3"));
//新建一个QStackWidget堆栈窗口对象
stack = new QStackedWidget(this);
//将创建的三个label标签控件一次插入到堆栈窗口中
stack->addWidget(label1);
stack->addWidget(label2);
stack->addWidget(label3);
auto *mainLayout = new QHBoxLayout(this);
//对整个对话窗体进行布局
    mainLayout->setMargin(5);//设置对话窗体之间的边距为5
    mainLayout->setSpacing(5);//设定各个控件之间的间距为5
    mainLayout->addWidget(list);
    mainLayout->addWidget(stack,0,Qt::AlignCenter);
    mainLayout->setStretchFactor(list,1);
    mainLayout->setStretchFactor(stack,3);
    connect(list, SIGNAL(currentRowChanged(int)),stack, SLOT(setCurrentIndex(int)));
}
StackDlg::~StackDlg() {
}

main.cpp

#include <QApplication>
#include <QDebug>
#include "StackDlg.h"
int main(int argc, char *argv[]) {
    QApplication a(argc, argv);
    StackDlg w;
    w.show();
return a.exec();
}

目录
相关文章
|
2月前
Qt 布局管理之 停靠窗口QDockWidget
Qt 布局管理之 停靠窗口QDockWidget
100 0
|
11天前
|
数据安全/隐私保护
Qt布局(登录窗口实现)
Qt布局(登录窗口实现)
14 4
|
2月前
|
开发者
Qt 布局(QSplitter 类&QDockWidget 类) 总结
Qt 布局(QSplitter 类&QDockWidget 类) 总结
Qt 布局(QSplitter 类&QDockWidget 类) 总结
|
23天前
QT布局管理器
QT布局管理器
|
2月前
|
编译器 C语言 开发者
Qt Quick 常见控件与子控件布局规则
Qt Quick 常见控件与子控件布局规则
58 1
|
2月前
|
编解码 开发者 UED
Qt布局实战:实现高效、美观的GUI应用程序
Qt布局实战:实现高效、美观的GUI应用程序
453 2
|
2月前
使用代码实现QT自定义布局
使用代码实现QT自定义布局
|
2月前
|
容器
QT基础入门——界面布局和常用控件(四)
QT基础入门——界面布局和常用控件(四)
64 0
QT基础入门——界面布局和常用控件(四)
|
3天前
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
11 1
Qt(C++)开发一款图片防盗用水印制作小工具