Qt 可以做什么?

Qt 虽然经常被当做一个 GUI 库,用来开发图形界面应用程序,但这并不是 Qt 的全部;Qt 除了可以绘制漂亮的界面(包括控件、布局、交互),还包含很多其它功能,比如多线程、访问数据库、图像处理、音频视频处理、网络通信、文件操作等,这些 Qt 都已经内置了。

大部分应用程序都可以使用 Qt 实现,除了与计算机底层结合特别紧密的,例如驱动开发,它直接使用硬件提供的编程接口,而不能使用操作系统自带的函数库。

下面的程序都使用 Qt 开发:WPS、YY语音、Skype、豆瓣电台、虾米音乐、淘宝助理、千牛、暴雪的战网客户端、VirtualBox、Opera、咪咕音乐、Google地图、Adobe Photoshop Album 等。

Linux 也是嵌入式的主力军,广泛应用于消费类电子、工业控制、军工电子、电信/网络/通讯、航空航天、汽车电子、医疗设备、仪器仪表等相关行业。

Qt 虽然也支持手机操作系统,但是由于 Android 本身已经有Java和 Kotlin,iOS 本身已经有 Objective-C 和 Swift,所以 Qt 在移动端的市场份额几乎可以忽略。

总起来说,Qt 主要用于桌面程序开发和嵌入式开发。

在QT中,可以使用QStackedWidget来实现页面的切换。具体步骤如下:

  1. 在QT设计器中拖放一个QStackedWidget控件,并在其中添加多个QWidget页面作为子控件。
  2. 在每个QWidget页面中添加需要展示的控件和布局。
  3. 在主窗口类中声明QStackedWidget对象和对应的页面索引值:
private:QStackedWidget *stackedWidget;int pageIndex1;int pageIndex2;

在构造函数中初始化QStackedWidget对象并将所有页面添加到其中:

MainWindow::MainWindow(QWidget *parent): QMainWindow(parent)
{// 初始化QStackedWidgetstackedWidget = new QStackedWidget(this);// 添加页面到QStackedWidgetQWidget *page1 = new QWidget();QLabel *label1 = new QLabel("Page 1");QVBoxLayout *layout1 = new QVBoxLayout(page1);layout1->addWidget(label1);QWidget *page2 = new QWidget();QLabel *label2 = new QLabel("Page 2");QVBoxLayout *layout2 = new QVBoxLayout(page2);layout2->addWidget(label2);stackedWidget->addWidget(page1);stackedWidget->addWidget(page2);// 设置默认显示的页面pageIndex1 = 0;
}

添加按钮并设置信号槽,通过按钮点击事件切换页面:

QPushButton *buttonPage1 = new QPushButton("Page 1", this);
connect(buttonPage1, &QPushButton::clicked, [=](){if (pageIndex2 != -1) {stackedWidget->removeWidget(stackedWidget->widget(pageIndex2));pageIndex2 = -1;}stackedWidget->setCurrentIndex(pageIndex1);
});QPushButton *buttonPage2 = new QPushButton("Page 2", this);
connect(buttonPage2, &QPushButton::clicked, [=](){if (pageIndex2 == -1) {QWidget *page2 = new QWidget();QLabel *label2 = new QLabel("Page 3");QVBoxLayout *layout2 = new QVBoxLayout(page2);layout2->addWidget(label3);stackedWidget->addWidget(page2);pageIndex2 = stackedWidget->count() - 1;}stackedWidget->setCurrentIndex(pageIndex2);
});

在按钮的点击事件中,通过设置QStackedWidget的当前页面索引值来实现页面切换。可以根据需求添加或移除QWidget页面,并记录其对应的索引值。

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,C++设计模式,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓

C++ Qt按钮切换页面相关推荐

  1. angular点击按钮弹出页面_Axure RP8:如何做出点击按钮切换页面效果?

    如何利用Axure RP8做出点击按钮切换页面效果?一起来文中看看~ 先来看一下页面的效果图:点击不同的按钮,切换不同的页面.(是web端和手机端都很常见的交互效果) 实现这一效果大致要分为三个步骤: ...

  2. winform按钮切换页面_C#如何通过一个按钮实现窗体界面的中英文切换?

    C#如何通过一个按钮实现窗体界面的中英文切换? 2020 - 8 - 17 TAG : 一.窗体的国际化解决方案新建一个WinForm解决方案后,选择主窗体,右击查看属性,找到Localizable属 ...

  3. QT 按钮切换背景图片

    使用setStyleSheet()函数进行设置: 如将一个QPushButton类的按钮设置为: ui->btn_name->setStyleSheet("QPushButton ...

  4. matlab GUI 实现按钮切换plot页面(含clear功能)

    GUI 实现按钮切换plot页面(含clear功能) hf=figure(...'Units','Normalized',...'Menu','none',...'Position',[0.1 0.1 ...

  5. (仿头条APP项目)2.主界面按钮切换Fragment页面

    文章目录 主界面按钮切换Fragment页面 效果展示 框架结构 xml视图 主视图 选择器和style java代码模块 创建4个Fragment 1.绑定按钮选择事件 2.初始化和用HashMap ...

  6. 点击按钮实现页面切换中英文

    我们在开发项目中,有时候需要切换不同的语言,有的人用英文,有的人使用繁体字,有的人使用简体字,下面我们来使用按钮达到一个切换语言的效果...在android系统的设置中有这个选项,我们选择之后系统里面 ...

  7. 举个栗子!Tableau技巧(53):添加跳转按钮实现页面切换

    如何在仪表板(工作表)中添加跳转按钮,从而实现页面跳转呢? 本期<举个栗子>,阿达要给大家分享的 Tableau 技巧是:添加跳转按钮实现页面切换. 为方便学习,示例使用 Tableau ...

  8. 前端的小玩意(9.1)——做一个仿360工具箱的web页面(Tab按钮切换)

    需求: ①写一个web版的360工具箱,示意图如下: ②无左上返回按钮,右上按钮有皮肤切换,下拉框(但无点击逻辑): ③按钮点击有事件,但事件是console.log(按钮名): ④可以在全部工具和我 ...

  9. 原生js实现点击按钮切换全屏!

    使用fullScreen API实现全屏 <head><meta charset="UTF-8"><meta name="viewport& ...

最新文章

  1. 【Linux】8.安装tensorrt和遇到的问题及解决方法
  2. ArrayList构造方法详解-给默认长度的方式
  3. java 8 lambda_Java 8 Lambda演练
  4. CSS选择器的权重详解
  5. fir1截止频率计算_数字信号处理 实验五:FIR数字滤波器设计与软件实现
  6. python之路 jQuery学习笔记
  7. mysql数据库回滚日志_Mysql数据库慢查询日志的使用
  8. 2020小美赛【A题翻译+思路】
  9. matlab用本原多项式生成本的m序列,本原多项式产生的m序列
  10. 金融专业英语词汇大全
  11. Fast RTPS原理与代码分析(2):动态发现协议之参与者发现协议PDP
  12. 戴尔服务器找不到启动盘,解决戴尔笔记本重装系统找不到引导或硬盘启动项方法...
  13. 计算机数据采集管理系统的结构和功能,生产数据采集系统结构、功能及特点
  14. linux注销登录用户
  15. jmeter设置永久中文和解决查看结果树响应中文乱码问题
  16. 错题本 (并查集) acwing 4084.号码牌
  17. csdn月入过万的作者是如何练成的?
  18. 每日一题——LeetCode977(有序数组的平方)二种方法
  19. C语言 对比数组内容的函数
  20. VS调试出现错误提示 无法将“obj\Debug\*.*”复制到“bin\Debug\*.*”,文件正在由另一个进程使用,因此该进程无法访问此文件

热门文章

  1. HashMap夺命14问,你能坚持到第几问?
  2. 什么是.dat? python读取.dat文件并转换为png图像——超简单实现
  3. python 将DAT文件转为TXT保存
  4. DECODE和CSAE的使用
  5. WinRAR.exe压缩文件夹的脚本bat
  6. python TypeError: missing 1 required positional argument:‘self‘
  7. Android6.0 mtk去除原生相机设置中的选项
  8. 安卓驱动设备节点权限设置
  9. 人工智能应用计算机的实例,毕业论文 人工智能及其应用
  10. 数据库oracle数据导入导出命令,数据库oracle数据导入导出命令