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

在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_OBJECTpublic: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.lryc.cn/news/525015.html

相关文章:

  • 嵌入式知识点总结 ARM体系与架构 专题提升(一)-硬件基础
  • 全氟醚橡胶发展前景:高性能密封材料的璀璨之星
  • Android程序中使用FFmpeg库
  • Spring 依赖注入详解:创建 Bean 和注入依赖是一回事吗?
  • 【动态规划】落花人独立,微雨燕双飞 - 8. 01背包问题
  • 浅说树上差分——点差分
  • All in大模型!智能座舱语音交互决胜2025
  • windows git bash 使用zsh 并集成 oh my zsh
  • Git进阶笔记系列(01)Git核心架构原理 | 常用命令实战集合
  • IDEA导入Maven工程不识别pom.xml
  • AT8870单通道直流电机驱动芯片
  • 计算机视觉算法实战——实体物体跟踪
  • 网络协议如何确保数据的安全传输?
  • 在elasticsearch中,document数据的写入流程如何?
  • 【优选算法】6----查找总价格为目标值的两个商品
  • 99.8 金融难点通俗解释:净资产收益率(ROE)
  • Java设计模式—观察者模式
  • 人工智能在数字化转型中的角色:从数据分析到智能决策
  • 论文阅读 Multi-view Classification Using Hybrid Fusion and Mutual Distillation
  • AIGC浪潮下,图文内容社区数据指标体系如何构建?
  • ”彩色的验证码,使用pytesseract识别出来的验证码内容一直是空“的解决办法
  • 前端Vue2项目使用md编辑器
  • OpenVela 架构剖析:从内核到应用
  • vue视频流播放,支持多种视频格式,如rmvb、mkv
  • 记一个Timestamp时区问题的坑
  • 新年好(Dijkstra+dfs/全排列)
  • 如何“看到” Spring 容器?
  • 怎么使用CRM软件?操作方法和技巧有哪些?
  • Spingboot整合Netty,简单示例
  • grafana新增email告警