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

Qt 基础按钮布局管理

```cpp

public:

    Content(QWidget *parent=0);

    ~Content();

    

    QStackedWidget *stack;

    QPushButton *AmendBtn;

    QPushButton *CloseBtn;

    Baseinfo *baseInfo;

    Contact *contact;

    Detail *detail;

    

    // 打开 "Content.cpp" 文件,添加如下代码:

    Content::Content(QWidget *parent) : QFrame(parent)

    {

        stack = new QStackedWidget(this);

        // 创建一个QStackedWidget 对象

        // 对堆栈窗口的显示风格进行设置

        stack->setFrameStyle(QFrame::Panel | QFrame::Raised);

        

        // 插入三个页面

        baseinfo = new Baseinfo();

        contact = new Contact();

        detail = new Detail();

        stack->addWidget(baseinfo);

        stack->addWidget(contact);

        stack->addWidget(detail);

        

        // 创建两个按钮

        // (a) 

        AmendBtn = new QPushButton(tr("修改"));

        // (b) 

        CloseBtn = new QPushButton(tr("关闭"));

        

        QHBoxLayout *BtnLayout = new QHBoxLayout;

        BtnLayout->addStretch(1);

        BtnLayout->addWidget(AmendBtn);

        BtnLayout->addWidget(CloseBtn);

        

        // 进行整体布局

        QVBoxLayout *RightLayout = new QVBoxLayout(this);

        RightLayout->setMargin(10);

        RightLayout->setSpacing(6);

        RightLayout->addWidget(stack);

        RightLayout->addLayout(BtnLayout);

    }

```

其中,

(a) baseinfo = new Baseinfo() 至 stack->addWidget(detail): 这段代码是在堆栈窗口中顺序插入“基本信息”“联系方式”“详细资料”三个页面。

(b) AmendBtn = new QPushButton(tr("修改")) 至 BtnLayout->addWidget(CloseBtn): 这段代码用于创建两个按钮,并利用QHBoxLayout 对其进行布局。

2. "修改用户基本信息”设计

- 添加该工程的提供主要显示用户基本信息界面的函数所在的文件,在"Example" 项目名上单击鼠标右键,在弹出的快捷菜单中选择“添加新文件…”选项,在弹出的对话框中选择"C++ Class" 选项,单击"Choose…”按钮。

- 弹出对话框,在"Base class "下拉列表框中选择基类名为"QWidget", 在"Class name" 的文本框中输入类的名称"BaseInfo"。单击“下一步”按钮,单击“完成“按钮,添加"baseinfo.h" 头文件和"baseinfo.cpp" 源文件。


http://www.kler.cn/news/306996.html

相关文章:

  • flink的窗口
  • QT QSystemTrayIcon创建系统托盘区图标失败
  • 后端开发刷题 | 兑换零钱(动态规划)
  • Prometheus+grafana+kafka_exporter监控kafka运行情况
  • 【Scala入门学习】基本数据类型和变量声明
  • [Mamba_4]LMa-UNet
  • 95、k8s之rancher可视化
  • STM32之FMC—扩展外部 SDRAM
  • Neo4j入门案例:三星堆
  • 基于Springboot的校园防疫管理系统的设计与实现
  • 【爬虫软件】小红书按关键词批量采集笔记,含笔记正文、转评赞藏等!
  • Linux whereis和which的区别
  • 光伏板热斑缺陷检测数据集
  • RocketMQ出现The broker does not support consumer to filter message by SQL92
  • JUC学习笔记(三)
  • 计算机网络(六) —— http协议详解
  • 黑马十天精通MySQL知识点
  • 【佳学基因检测】在EXCEL中,如何获取A列的第9-29个字符,将其填入另一列中
  • 华为ensp中vlan与静态路由技术的实现
  • 『功能项目』伤害数字UI显示【53】
  • 基于SpringBoot+Vue+MySQL的校园健康驿站管理系统
  • Baumer工业相机堡盟工业相机如何通过NEOAPI SDK获取相机当前数据吞吐量(Python)
  • Java | Leetcode Java题解之第406题根据身高重建队列
  • ARACom Proxy Class API 概念
  • 鸿蒙介绍、鸿蒙编程环境、基本组件、页面跳转学习
  • CPU 和 GPU:为什么GPU更适合深度学习?
  • PostgreSQL 日常SQL语句查询记录
  • linux网络编程——UDP编程
  • 预测日前电价:回顾最先进的算法、最佳实践和公开基准——阅读笔记
  • Linux FTP服务问题排查