当前位置: 首页 > news >正文

qt-16可扩展对话框--隐藏和展现

可扩展对话框

  • 知识点
  • extension.h
  • extension.cpp
  • main.cpp
  • 运行图
    • 初始化隐藏
    • 展现--点击--详细按钮

知识点

MainLayout->setSizeConstraint(QLayout::SetFixedSize);//固定窗口大小

extension.h

#ifndef EXTENSION_H
#define EXTENSION_H#include <QDialog>class Extension : public QDialog
{Q_OBJECTpublic:Extension(QWidget *parent = nullptr);~Extension();
private slots:void ShowDetailInfo();
private:void CreateBaseInfo();void CreateDetailInfo();QWidget* BaseWidget;QWidget* DetailWidget;
};
#endif // EXTENSION_H

extension.cpp

#include "extension.h"
#include <QVBoxLayout>
#include <QLabel>
#include <QLineEdit>
#include <QComboBox>
#include <QPushButton>
#include <QDialogButtonBox>
#include <QHBoxLayout>Extension::Extension(QWidget *parent): QDialog(parent)
{setWindowTitle(tr("Extension Dialog"));CreateBaseInfo();CreateDetailInfo();QVBoxLayout* MainLayout = new QVBoxLayout(this);MainLayout->addWidget(BaseWidget);MainLayout->addWidget(DetailWidget);//MainLayout->setSizeConstraint(QLayout::SetFixedSize);//固定窗口大小MainLayout->setSpacing(10);
}Extension::~Extension() {}void Extension::ShowDetailInfo()
{if(DetailWidget->isHidden()){DetailWidget->show();return;}DetailWidget->hide();}void Extension::CreateBaseInfo()
{BaseWidget = new QWidget;QLabel* NameLabel = new QLabel(tr("姓名:"));QLineEdit* NameLineEdit = new QLineEdit;QLabel* SexLabel = new QLabel("性别:");QComboBox* SexComboBox = new QComboBox;SexComboBox->insertItem(0,tr("男"));SexComboBox->insertItem(1,tr("女"));QGridLayout* LeftLayout = new QGridLayout;LeftLayout->addWidget(NameLabel,0,0);LeftLayout->addWidget(NameLineEdit,0,1);LeftLayout->addWidget(SexLabel,1,0);LeftLayout->addWidget(SexComboBox,1,1);QPushButton* OkBtn = new QPushButton(tr("确定"));QPushButton* DetailBtn = new QPushButton(tr("详细"));QDialogButtonBox* BtnBox = new QDialogButtonBox(Qt::Vertical);BtnBox->addButton(OkBtn,QDialogButtonBox::ActionRole);BtnBox->addButton(DetailBtn,QDialogButtonBox::ActionRole);//主布局QHBoxLayout* MainLayout = new QHBoxLayout(BaseWidget);MainLayout->addLayout(LeftLayout);MainLayout->addWidget(BtnBox);//事件connect(DetailBtn,SIGNAL(clicked()),this,SLOT(ShowDetailInfo()));
}void Extension::CreateDetailInfo()
{DetailWidget = new QWidget;QLabel* AgeLabel = new QLabel(tr("年龄"));QLineEdit* AgeLineEdit = new QLineEdit(tr("30"));QLabel* DepartmentLabel = new QLabel(tr("部门:"));QComboBox* DepartmentComboBox = new QComboBox;DepartmentComboBox->addItem(tr("部门1"));DepartmentComboBox->addItem(tr("部门2"));DepartmentComboBox->addItem(tr("部门3"));DepartmentComboBox->addItem(tr("部门4"));QLabel* EmailLabel = new QLabel(tr("Email:"));QLineEdit* EmailEdit = new QLineEdit;//布局QGridLayout* MainLayout = new QGridLayout(DetailWidget);MainLayout->addWidget(AgeLabel,0,0);MainLayout->addWidget(AgeLineEdit,0,1);MainLayout->addWidget(DepartmentLabel,1,0);MainLayout->addWidget(DepartmentComboBox,1,1);MainLayout->addWidget(EmailLabel,2,0);MainLayout->addWidget(EmailEdit,2,1);DetailWidget->hide();}

main.cpp

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

运行图

初始化隐藏

在这里插入图片描述

展现–点击–详细按钮

在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【硬件模块】震动传感器模块
  • Python做统计图之美
  • 注意!美国跨境选品风向变动,低价产品反成抢手货!
  • vos3000怎样对接voip落地语音网关呢?卡机和O口网关的配置技巧有哪些?
  • 牛客JS题(四十五)数组去重
  • Element-05.组件-Form表单
  • JavaSE-详细介绍
  • Python 环境搭建指南 超详细
  • SpringBoot自动配置
  • vscode 远程免密登录
  • springCloudAlibaba整合log4j2
  • react中使用nextjs框架,前端调后端接口跨域解决方式
  • 从0开始搭建vue + flask 旅游景点数据分析系统(十一):登录、注册页面、未登录拦截、注销逻辑
  • 信息学奥赛一本通1259:【例9.3】求最长不下降序列
  • 浙大数据结构慕课课后题(04-树6 Complete Binary Search Tree)
  • 「面试题」如何实现一个圣杯布局?
  • 30秒的PHP代码片段(1)数组 - Array
  • ES6系列(二)变量的解构赋值
  • JavaScript设计模式与开发实践系列之策略模式
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • npx命令介绍
  • python大佬养成计划----difflib模块
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 微信小程序开发问题汇总
  • 项目管理碎碎念系列之一:干系人管理
  • 学习笔记TF060:图像语音结合,看图说话
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • ## 基础知识
  • (4)事件处理——(7)简单事件(Simple events)
  • (70min)字节暑假实习二面(已挂)
  • (八)Flask之app.route装饰器函数的参数
  • (分布式缓存)Redis分片集群
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (十六)串口UART
  • (循环依赖问题)学习spring的第九天
  • (转载)利用webkit抓取动态网页和链接
  • . Flume面试题
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .net 获取某一天 在当月是 第几周 函数
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。
  • .NET的数据绑定
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • .Net中ListT 泛型转成DataTable、DataSet
  • 。。。。。
  • /run/containerd/containerd.sock connect: connection refused
  • @Builder用法
  • @Transaction注解失效的几种场景(附有示例代码)
  • [ JavaScript ] JSON方法
  • [ 隧道技术 ] 反弹shell的集中常见方式(二)bash反弹shell
  • [ 转载 ] SharePoint 资料
  • [20170705]lsnrctl status LISTENER_SCAN1