Qt学习第一天:新建qt工程,编写helloWorld,按钮信号和槽
Qt学习第一天:新建qt工程,编写helloWorld,按钮信号和槽-CSDN博客
一,C++面向对象
学习qt要有一些c++面向对象的基础
C++的类与类之间存在上下级的关系,类可以继承另外一个类。被继承的类通常称作为是基类。
而主动继承的类通常被称作是派生类。
二,创建qt项目
- 创建工程时选择的QWidget类。
该工程的目的就是为了创建一个窗口,对Qt的界面开发,就是基于此工程的,可以在窗口上添加组件或者自由设计均可。 - 然后一键next
三,目录详细介绍
1,C++程序的入口main.cpp
1 |
|
2,Qt生成窗口的类的头文件widget.h
1 |
|
3,Qt生成窗口的类的实现文件widget.cpp
1 |
|
四,写个hello world并调节其样式
1,通过代码实现
在widget.h头文件中添加
1 |
|
添加后
1 |
|
widget.cpp里
1 |
|
运行结果

拉伸窗口会发现Hello World会原位不动
设计样式1 将label组件始终放在窗口的正中间
在Qt生成的工程当中,如果没有添加组件,并且可以拉伸窗口大小的话,拉太小可能会隐藏窗口上的组件,拉太大又有些影响美观,所以我们想要,保持组件们一直持续显示在窗口的正中央。
1) 在widget.h头文件中添加
1 |
|
上同
2) widget.cpp里添加
1 |
|

这样如何拉伸界面Hello World都会在窗户正中央
设计样式2 样式表
在Qt中,修改组件或者窗口的字体、背景颜色等等,都可以通过设置样式表实现。
一些比较炫酷的界面效果也可以用样式表实现。
在如下的代码实例中,不同的样式表语句,需要用分号隔开,不然会引起冲突。
由于不会对函数内的字符串类型纠错,注意不得有拼写错误。
1 |
|
在Qt中,也可以用QSS语句实现样式表的功能,QSS语句类似于HTML CSS语言,用{}整合想要的数据,在内部通过 “属性:数值” 的方式设置自己想要的效果
1 |
|
2,进入Qt设计师界面
先双击Forms文件夹下widget.ui文件,进入Qt设计师界面。
在左列中找到label,将label拖拽到窗口的正中间
在右上角对象与类的列表中,找到窗口Widget,点击选中窗口。
在右下角geometry可以修改窗口的尺寸,再同步以下label的位置。
选择label,在右下角找到alignment,水平和垂直均选择为Center,代表居中对齐。
选中label,找到font,透过调整点大小的值来修改字体的大小。
五,按钮
1,创建按钮
当我们在设计师界面中,将按钮放置在布局里时,按钮的高度并不会发生改变,同时变得很扁。这是因为它垂直的尺寸策略为fixed固定值,需要将其修改为与水平除了相一致的Minimum即可,或者统一修改为fixed,同时设置按钮尺寸的最小尺寸。
2,信号和槽
信号和槽其实是一个函数
1 |
|
connect函数的作用是连接信号和槽。
QObject类是Qt里最上层的类。绝大多数的Qt类往上,都会继承该类,也可以算是Qt里的祖宗类
该QObject可以用来表示窗口,也可以用来表示组件、控件的对象
1 |
|
具体的信号和槽函数是分别通过SIGNAL()和SLOT()实现的。
这是两个宏定义函数,最终转换成了char* 字符串类型
1)点击按钮之后,将整个窗口显示全屏。
第一个方案:利用信号和槽的编辑界面来完成相应功能
先来到设计师界面,首先保证界面内有一个按钮。
在上方工具栏中点击第二个按钮,第二个按钮的意思就是edit signal/slot,专门用来编辑信号和槽的界面。
想要实现信号和槽,就要分析谁是信号的发送者?谁是信号的接收者?
在该案例中,点击按钮之后,窗口才会做出反应,所以信号的发送者就是按钮,信号的接收者为窗口。
点击按钮,长按,往外拖出一跟线,连接到窗口上。
在配置连接的对话框中,点击下方从QWidget继承的信号和槽,左边信号选择按钮的clicked()信号,右边的槽函数选择窗口的showFullScreen()槽函数。
第二个方案:通过转到槽来实现相应功能
来到设计师界面中,找按钮,右键点击,选择转到槽的操作。此时,需要选择连接的信号,选择clicked()。
跳转到代码页面中
此时widget.h会自动生成以下代码:
1 |
|
此时widget.cpp也会自动生成以下代码:
1 |
|
2) 反复点击按钮之后,可以使得label上的信息来回切换
widget.h

widget.cpp
