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

Qt之QWidget相关

Qt概述

Qt 是一个跨平台的 C++ 开发框架。

 

跨平台支持:可以用于开发 Windows、macOS、Linux、Android、iOS 等多种操作系统下的应用程序。这意味着开发者使用 Qt 编写的代码,在经过适当的编译和配置后,能够在不同平台上运行,减少了为每个平台单独开发的成本。

丰富的库和工具:它提供了大量的类库来处理图形用户界面(GUI)开发、数据库访问、网络通信、多媒体处理等诸多任务。例如,在 GUI 开发方面,有各种现成的窗口部件(如按钮、文本框等),能帮助开发者快速构建出美观实用的界面。

信号与槽机制:这是 Qt 的一个特色通信机制。信号可以由对象发出,比如按钮的点击信号;槽是接收信号后执行的函数。这种机制使得对象间的通信更加灵活和安全,方便开发者实现事件驱动的编程。

面向对象设计:Qt 是基于 C++ 的,充分利用了面向对象编程的特点。开发者可以通过继承、封装等方式高效地构建复杂的应用程序,方便代码的维护和扩展。

应用广泛:在桌面软件开发、移动应用开发、嵌入式系统开发等领域都有大量应用。例如一些知名的软件就是用 Qt 开发的,它为开发高质量的软件提供了有力的支持。

创建项目

项目的本质是一个存储程序相关文件的文件夹


Qt Creator创建项目

        方式1:文件->新建文件或项目

        方式2:点击new project

        方式3:点击编辑,在其项目栏空白区域点击鼠标右键,选择新建项目


注意:

        项目的名称与存储项目的路径中不要有中文或特殊符号

项目结构

项目名.pro

        作用:项目的配置文件,如项目名称,项目中窗口对应的头文件,源文件,ui文件,支持的库,忽略警告等

头文件:        

        作用:存储项目中窗口对应的头文件,一个窗口对应一个类,一个窗口对象就是一个类对象

源文件:

        main.cpp

                1,创建一个应用程序

                 2,创建一个窗口

                3,显示窗口

                4,获取执行权到窗口中

        通过对main.cpp的分析,我们发现窗口的相关代码在窗口的构造函数中书写

ui文件:

        作用:存储窗口对应的布局文件

Qt对象模型

QObject

        QWidget

                QMainWindow

                QPushButton

                ......

QTUI文件坐标系

左上角为(0,0)点

x轴向右为正

y轴向下为正

设置窗口

resize(int w,int h);        设置窗口大小,可拖拽改变

setFixedSize(int w,int h);        设置窗口大小,不可拖拽改变

setWindowTitle(QString str);        设置窗口标题

QPushButton

概述:Qt提供按钮的类

创建:

        方式1:代码创建

                QPushButton *变量名 = new QPushButton(this);

                QPushButotn *变量名 = new QPushButton("展示的文本",this);

        方式2:UI文件中拖拽

                ui->组建在文件中的objectname

相关函数:

        继承于QWidget,所以QWidget提供的函数与变量都可以用

        text();        //获取当前按钮上显示的信息

        setText("显示的内容");        //设置按钮上现实的文本

常用信号:

          clicked(bool b);        //点击信号      

 QWidget提供的槽

close();        //关闭

show();        //显示

hide();        //隐藏

信号与槽

绑定信号与槽

connect(谁1,信号,谁2,槽函数);


Qt4的写法:

        connect(谁1,SIGNAL(信号(形参列表)),谁2,SLOT(槽函数(形参列表)));

Qt5的写法:

        connect(谁1,&谁1的类名::信号,谁2,&谁2的类名::槽函数名);    


注意:

        1,谁1,谁2都必须是QObject的子类对象

        2,槽函数的参数数量不能多于其所绑定信号的参数数量。

        3,可以使用emit发送信号

                emit 谁->信号(实参);

        4,一个信号可以绑定多个槽

        5,多个信号可以绑定同一个槽

        6,信号可以连接信号

自定义槽

1,在对应的窗口的头文件中定义槽函数

        public slots:

                void 槽函数名(形参列表);

                void 槽函数名(形参列表);

                ...

2,在源文件中实现该槽函数
3,使用connect绑定信号与槽               

自定义信号

1,在对应的窗口的头文件中定义

        signals:

                void 信号名(形参列表);

注意:

        信号不用实现


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

相关文章:

  • 【es6进阶】vue3中的数据劫持的最新实现方案的proxy的详解
  • NFS搭建
  • react中useMemo的使用场景
  • 深入理解索引(一)
  • 缓存工具类编写
  • 基于Java Springboot高考志愿填报辅助系统
  • 7、深入剖析PyTorch nn.Module源码
  • 【入门篇】欧几里德最差序列——多语言求解版
  • 后端:事务
  • RabbitMQ2:介绍、安装、快速入门、数据隔离
  • 八、无刷电机电压电流温度采集
  • CSS布局学习1
  • Oracle SQL优化②——访问路径
  • 使用 Elastic AI Assistant for Search 和 Azure OpenAI 实现从 0 到 60 的转变
  • 2-测试bigcache做进程内缓存 --开源项目obtain_data测试
  • Python爬虫:获取1688店铺详情的实战指南
  • JMeter监听器与压测监控之 InfluxDB
  • 在Excel中处理不规范的日期格式数据并判断格式是否正确
  • 【JAVA面试题】什么是Springboot的自动配置以及注意事项
  • 【深度学习之回归预测篇】基于卷积神经网络(CNN)的数据回归预测
  • 第二十一周机器学习笔记:动手深度学习之——数据操作、数据预处理
  • 如何在react中使用 indexDb
  • 用axios和fetch分别封装请求
  • RK3588开发板中编译安装opencv
  • java中链表的数据结构的理解
  • 【超详细】C#基础-基本运算、语句