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

在Qt中实现点击一个界面上的按钮弹窗到另一个界面

文章目录

      • 步骤 1:创建新窗口类
      • 步骤 2:设计窗口的 UI
      • 步骤 3:设计响应函数

以下是一个完整的示例,展示在Qt中如何实现在一个窗口中通过点击按钮弹出一个新窗口。


步骤 1:创建新窗口类

假设你要创建一个名为 WelcomeWidget 的新窗口,首先需要选择 “编辑” -,右键项目名,在菜单中选择 “Add New…”
添加Widget文件
然后依次选择 “Qt” - “Qt 设计师界面类” ,点击“Choose”:
选择文件类型
然后选择 “Widget” ,点击“下一步”:
选择窗口类型
然后修改类名为“WelcomeWidget”(当然,你也可以修改成自己想要的类名),点击“下一步”:
给这个窗口类命名
继续点击下一步,相关的头文件 welcomewidget.h 、源文件 welcomewidget.cpp 、界面文件 welcomewidget.ui 都会自动生成:
自动生成相关文件

步骤 2:设计窗口的 UI

假设你要在MainWindow中实现点击按钮打开你刚刚添加的WelcomeWidget
在 Qt Designer 中,选择 “编辑” - “Forms”,打开界面文件 mainwindow.ui ,在可视化模式上进行界面设计。
为主窗口添加一个按钮(例如 pushButton),并将其命名为 pushButton


步骤 3:设计响应函数

打开界面文件 mainwindow.ui ,在可视化模式上,右键点击你刚刚添加的按钮(例如 pushButton),在右键菜单中选择**“转到槽…”
给按钮添加响应的槽函数
然后,选择
“clicked()”**,点击OK:
添加点击响应函数
然后,在头文件 mainwindow.h中添加一个WelcomeWidget类的指针:

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
    WelcomeWidget *WelcomeWidgetObj = NULL; // 添加一个WelcomeWidget类的指针,用于指向另一个窗口的实例化对象

// MainWindow 类的其他成员变量或成员函数
};

在源文件 mainwindow.cpp中已经自动生成的槽函数中添加一个新窗口的实例化对象,并显示新窗口:

void MainWidget::on_pushButton_clicked()
{
    // 打开图像超分辨率处理窗口
    this->WelcomeWidgetObj = new WelcomeWidget(); // 创建新窗口的实例
    WelcomeWidgetObj ->show(); // 显示新窗口的实例

    // this->close(); // 如果希望在打开新窗口后关闭原来的窗口,可以加上这一行代码
}

然后,编译、运行项目,即可实现点击一个界面上的按钮,弹窗到另一个界面的功能。
参考资料:Qt实现页面跳转


http://www.kler.cn/a/517029.html

相关文章:

  • 2025年1月21日(树莓派点亮呼吸灯第一次修改)
  • 【Unity3D】3D物体摆放、场景优化案例Demo
  • Sharding-JDBC 5.4.1+SpringBoot3.4.1+MySQL8.4.1 使用案例
  • pytest自动化测试 - pytest夹具的基本概念
  • (回溯分割)leetcode93 复原IP地址
  • PL/SQL语言的图形用户界面
  • Xcode各个历史版本下载地址
  • 一文速通stack和queue的理解与使用
  • 根据条件更改el-tree的字体颜色
  • 【物联网】ARM核常用指令(详解):数据传送、计算、位运算、比较、跳转、内存访问、CPSR/SPSR、流水线及伪指令
  • Linux探秘坊-------4.进度条小程序
  • 基于微信小程序的汽车保养系统设计与实现(LW+源码+讲解)
  • 关于单通道串口服务器的详细讲解
  • uniapp APP端页面触发调用webview(页面为uniapp开发的H5)里的方法
  • 速通Docker === Docker Compose
  • WebAssembly视频检测在社区创作平台的落地与实践 | 得物技术
  • 设计模式的艺术-职责链模式
  • 解决npm install总是卡在sill idealTree buildDeps不动问题
  • 【java】签名验签防篡改研究测试
  • 解决Python 在 Flask 开发模式下定时任务启动两次的问题
  • C# OpenCV机器视觉:交通标志识别
  • 【Uniapp-Vue3】下拉刷新
  • 最新-CentOS 7 基于1 Panel面板安装 JumpServer 堡垒机
  • maven打包springboot项目出现找不到符号错误
  • k8s 蓝绿发布、滚动发布、灰度发布
  • git和idea重新安装后提交异常