QT入门到实战篇_01_创建设置

QT入门到实战篇_01_创建设置pushbutton控件

一、在system编码下汉字显示为乱码

(1)查看项目—管理构建套件…—文本编辑器—行为—文件编码—默认编码是不是UTF-8

(2)在.pro文件中添加QMAKE_CXXFLAGS += /utf-8

二、实现创建按钮UI界面和控件设置(代码式)

1、创建一个pushbutton

需要使用到QPushButton类,在,mainwindow.cpp中添加如下

运行之后会发现,我创建的pushbutton没有附加到原始的界面中。按钮是QPushButton类下的对象,如果只是创建出对象,是无法显示到窗口中的。

这是因为show()是将界面以顶层方式弹出窗口控件。一般不使用。

2、按钮添加到原始界面中

  1. 添加btn依赖于主界面(设置父系)

需要依赖一个父窗口,指定一个父亲利用setParent函数

  1. 通过resize设置按钮的大小

重新指定按钮大小:btn->resize

  1. 移动按钮位置用move

3、以其他函数重载的形式创建按钮

(1) 需要移动第二个按钮,不然会与第一个按钮重合

 (2) 设置窗口名称

左上角窗口的标题setWindowTitle

(3) 设置窗口固定大小

设置固定的窗口大小setFixedSize

  1. 重置窗口大小

重新指定按钮大小resize

  1. 设置按钮上显示的文字利用setText

4、实现单击按钮关闭窗口功能

一般使用Qt中自带的信号和槽函数的使用方法

(1)怎样将触发与执行连接起来呢

首先讲一个众所周知的故事:人摩擦神灯出灯神的故事

这里面人是发出摩擦信号的对象,神灯是发出出灯神的对象

对于程序我们有一下需求:点击我的按钮 关闭窗口

需要使用到:connect函数将发出信号的对象与执行命令的对象连接起来。

连接(connect)函数意思是,将想要处理的信号和自己的一个函数(称为槽(slot))绑定来处理这个信号。也就是说,当信号发出时,被连接的槽函数会自动被回调。这就类似观察者模式:当发生了感兴趣的事件,某一个操作就会被自动触发。

(2)connect()函数最常用的一般形式:

connect(sender, signal, receiver, slot);

参数解释:

    sender:发出信号的对象

    signal:发送对象发出的信号

    receiver:接收信号的对象

    slot:接收对象在接收到信号之后所需要调用的函数(槽函数)

信号槽的优点,松散耦合,信号的发送端和接收端本身是没有联系起来的,通过connect将两端耦合起来。

(3)实现点击一个按钮实现关闭界面的功能,需要找到对象和相应的信号和槽函数

1)那么系统自带的信号和槽通常如何查找呢?

这个就需要利用帮助文档了,在帮助文档中比如我们上面的按钮的点击信号,在帮助文档中输入QPushButton,首先我们可以在Contents中寻找关键字 signals,信号的意思,但是我们发现并没有找到,这时候我们应该想到也许这个信号的被父类继承下来的,因此我们去他的父类QAbstractButton中就可以找到该关键字,点击signals索引到系统自带的信号有如下几个

clicked就是要找到,槽函数的寻找方式和信号一样,只不过他的关键字是slot。
2)代码内容

单击第一个按钮,关闭窗口

三、实现创建按钮UI界面和控件设置(混合式1)

1、在UI 界面添加两个按钮

(1)将按钮的文本依次修改第一个按钮、第二个按钮

(2)将第一个按钮的类名修改btn,第二个按钮类名修改为btn_2

(3)点击右下角的geometry

第一个按钮的x:20,y:20 宽度:100,高度:50

第一个按钮的x:20,y:20 宽度:100,高度:50

将按钮中文本字体大小设置为10

2实现单击按钮关闭窗口功能

(1)单击第一个按钮,右键单击选择转到槽,选择clicked()

  

(2)在mainwindow.cpp添加

同理第二个按钮

运行就可以实现单击按钮关闭窗口

四、实现创建按钮UI界面和控件设置(混合式2)

1、在UI 界面添加两个按钮

同第3部分

2实现单击按钮关闭窗口功能

首先将第3部分信号与槽的程序注释掉

  

  1. 在UI界面的信号与槽添加

运行后,单击各个按钮可以关闭窗口

运行后,单击第一个按钮关闭窗口

单击第二个按钮,关闭当前第一个按钮和第二个按钮界面。

可以任意修改接收者信息。

学习视频地址:创建pushbutton控件及设置:代码实现UI界面编写、控件设置。 问题:在system编码下汉字显示为乱码

参考文献:

QT从入门到实战x篇_03_创建及设置pushbutton控件:代码实现UI界面编写、控件设置。 问题:在system编码下汉字显示为乱码_qt控件实战_十月旧城的博客-CSDN博客

QT从入门到实战x篇_05_信号和槽1:Qt中自带的信号和槽函数的使用方法_qt自带函数_十月旧城的博客-CSDN博客

Qt各类型错误总结_peiran message result is: 0_「已注销」的博客-CSDN博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值