IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> QT学习笔记1:基本概念与基本问题 -> 正文阅读

[C++知识库]QT学习笔记1:基本概念与基本问题

基础概念和基本问题

UI

指我们设计的图形界面的整体。

如何在控制台输出?

在QT中使用qDebug()函数,进行输出,QString是QT中的字符串变量类型。

控件

控件就是能完成某种特定的功能的模块,在使用之前,建议根据相应的功能进行改名。

信号与槽

信号:由控件发出的特定的信号(状态发生改变时,就发出信号),类似于触发函数。
如Pushbutton控件

//按钮的信号
void clicked(bool checked=false);
void pressed();
void released();
void toggled(bool checked);

槽:就是槽函数的意思,我们可以把槽函数绑定在某一个控件的信号上,类似于回调函数。

关联信号与槽

自动关联:

在ui文件中进行关联,仅用于可见的控件。
使用方法:直接选择相应的控件,右键菜单选中“转到槽”,自动关联会给我们的工程自动添加:

  1. 控件的头文件中的槽声明(私有或是共有)
  2. 控件对应cpp文件中的槽函数定义框架(就是函数的定义)
class UI{
//some 声明
//槽函数只能声明到 public slot或者private slot
private slots{
	void 槽函数()
};

手动关联

手动关联可以用于可见的控件,也可以用于不可见的控件。
使用方法:使用connect函数:

//在UI的cpp文件中的建构函数中使用connect函数
//假设构造的UI是ui,信号是pushButton的clicked()
//槽函数为(自己要先在h文件中声明)Bt_clicked_slot()
//注意,调用函数指针不同的是,这里的两个函数是要带上()。
connect(bt,SIGNAL(clicked()),this,SLOT(Bt_clicked_slot()));

解释:当bt对象发出信号clicked()的时候,就会触发对象this的槽函数Bt_clicked_slot()。

给界面添加图片

给QT工程添加图片:

第一步:给工程中添加图片文件

  1. 添加资源文件(Resources)
  2. 点开Resources文件夹下的plc.qrc
  3. 将目标图片文件放入到qt工程路径下
  4. 在保存后,选择添加-添加文件,选中目标图片

第二步:使用qLabel控件

  1. 去除qLabel中的文字
  2. 右键菜单中选中“改变样式表”
  3. 点击弹出的新窗口中的添加资源右侧的小三角,选中“border-Image”
  4. 在新窗口中点击<resource root>
  5. 选择右侧的图片即可在qLabel中显示图片

注意

  1. 不仅仅可以在qLabel中添加图片,也可以在诸如按钮控件中添加图片。
  2. 添加图片的方式也是“改变样式表”…(就是第二步中的2.开始的内容)

界面布局

界面布局的三种方式

??在不同大小的屏幕,或者窗口可变的窗口中运行时,如何保证控件的位置能够自动调整?这就会用到界面布局。
??qt下的三种布局:(箭头不表示顺序关系,仅仅展示相对位置)

  1. 水平布局
sq1
sq2
sq3
...
  1. 垂直布局
sq1
sq2
sq3
...
  1. 栅格布局
    栅格布局结合了水平布局和垂直布局,就是写完一行再换下一行。
sq1
sq2
sq3
...
sq5
sq6
sq7
...

如何设置界面布局?

  1. 选中多个要保持同一种布局的控件,然后点击UI上方的布局按钮。
  2. 布局的本质就是将多个控件进行相关位置的约束,并且对外视作一个整体。因此布局是可以嵌套的,比如可以让几个水平布局的控件组,相互进行垂直布局。
  3. 在布局时,如果涉及大小可以为零的情况,那么会导致控件消失,应该提前规定好控件的最小尺寸(minimum size)。
  4. 合理利用弹簧(spacers)。在最外侧的四周可以添加四个弹簧,然后和中心的主要控件组设置栅格布局,就可以在窗口拉伸时保持相对位置。
  5. 如果想重新设计相关布局,那么可以使用上方的打破布局。
  6. 布局不会影响到h文件和cpp文件。

界面切换

当我们希望点击某些按钮后,出现另一个界面,如何实现?

创建新的UI文件

  1. 点击工程文件,右键点击添加新文件,选择Qt设计师界面类
  2. 选择界面模板分类(widget等)
  3. 设置类的相关参数(类名等),然后添加到项目即可。

设置相关调用逻辑

  1. 在主UI界面的cpp文件中引用新UI文件的头文件
  2. 的槽函数中设置相关的调用逻辑;不妨令新UI类为ctrl,头文件同名
//调用新UI的头文件
#include"ctrl.h"

//在某些槽函数中设置调用逻辑
void func()
{
	ctrl *ct = new ctrl;//实例化新对象
	//设置新窗口对象的几何属性,如长宽高。这里是复制本窗体的属性。
	ct->setGeometry(this->geometry());
	ct->show();
	//this->close();//窗体的关闭方法,可以在窗体的相关页面进行查看
	//ui->userEdit->text();//获取窗体ui下的控件userEdit的文本内容的方法,是控件lineEdit类的方法
}
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-26 08:41:11  更:2021-11-26 08:43:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:49:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码