Qt界面编程02

1、使用Qt设计师制作界面
1、使用Qt设计师的三种方法:

1、在创建Qt界面项目时QtCreator可以自动创建一个主界面类、主界面ui文件,双击打开ui文件,使用Qt设计师进行界面设计。

2、右击项目->添加新文件->Qt->Qt设计师界面类->选择基类->输入类名,会自动打开ui文件,使用Qt设计师进行界面设计。

3、项目中的ui设计师(w),使用Qt Designer软件打开并创建ui文件,进行界面设计,ui设计师会把设计好的ui文件交给程序员使用,程序员可以使用uic命令把ui文件翻译成.h文件在项目中使用。

2、Qt设计师的使用方法

1、使用鼠标调整主窗口的大小(粗略的调整),设置控件、窗口的geomtery属性,设置窗口、控件的大小位置等。

2、Qt设计师的右面是控件列表,可以使用鼠标把控件拖拽进主界面中,然后设置控件的位置大小。

使用鼠标调整位置、大小,设置控件的geomtery属性,设置控件的大小位置

方向键是以10像素为单位移动控件

Ctrl+方向键以是1像素为单位移动控件

Shift+方向键,是以10像素为单位调整控件的大小

Shift+Ctrl+方向键,是以1像素为单位调整控件的大小

3、在右上角的控件对象列表中,给控件取一个有意义的对象名,这个对象名后期需要在代码中使用,所有要慎重。

3、设置控件的相关属性:

1、enable 是否启动控件

2、minmumSize、maxmumSize 控件的最大size和最小size。

3、font 控件上的文本的字体、字号

4、cursor 鼠标移动到控件上,鼠标的样式

5、text 设置控件上显示的文字

6、alignment 设置控件上内容的对齐方式

练习:使用Qt设计师,设计QQ的登录界面,不需要考虑功能、图片、配色。

4、转到槽

1、选中控件(一定好为控制取好名字),右击转到槽,选择信号。

2、会在头文件中声明槽函数,源文件中实现槽函数,会自动把刚刚选择的信号与槽函数自动连接。

3、槽函数中具体做什么事情,需要程序员自己实现。

4、如果需要删除连接,只需要删除自动生成的槽函数即可。

注意:控件的信号执行对应的代码,也就是控件的信号与自定义的槽函数进行连接。

5、编辑信号和槽的连接

1、点击 Signals & Slots Editor 界面,把现有的信号和槽进行连接。

2、点击 + 新建连接,选择 发送者,发送的信号,接收者,槽函数。

3、点击 - 删除连接。

注意:此功能是控件的信号与控件槽函数进行连接。

2、在QtCreator中是如何自动使用界面文件的

mainwindow.ui文件为例

1、QtCreator会把mainwindow.ui文件翻译成ui_mainwindow.h文件,QtCreator集成开发环境调用uic工具完成的。

2、ui_mainwindow.h文件会包含所有mainwindow.ui文件中使用到控件的头文件。

3、ui_mainwindow.h文件中会自动生成Ui_MainWindow类,类中的成员有所有mainwindow.ui文件中的控件,这些成员全部是public的访问属性。

4、Ui_MainWindow类中有一个void setupUi(QMainWindow *MainWindow)成员函数,需要调用者提供窗口容器的对象指针,也就是指定父窗口,函数内部是对所有的控件进行相关设置,所设置的参数就是mainwindow.ui文件中的。

5、ui_mainwindow.h文件中会定义一个namespace Ui的名字空间,名字空间内容会定义一个,叫MainWindow的类,并继承Ui_MainWindow类,就相当于给Ui_MainWindow类改了个名字。

6、在QtCreator的项目中包含了mainwindow.h、mainwindow.cpp文件。

7、mainwindow.h中,声明了Ui名字空间的MainWindow类,然后定义了MainWindow类还继承了QMainWindow(它就是一种窗口窗口了),并且还包含了Ui::MainWindow *ui成员。

8、mainwindow.cpp文件中包含ui_mainwindow.h文件,然后在MainWindow类的构造函数中,在参数列表中使用new创建Ui::MainWindow *ui对象,然后在构造函数的内部调用了 ui->setupUi(this)函数。

9、MainWindow的析构函数负责delete Ui::MainWindow *ui对象,由于ui对象的成员是public属性的,所以在MainWindow成员函数内可以自由的使用mainwindow.ui文件中的所有控件。

3、界面布局
1、绝对定位布局

1、固定界面的大小,禁止用户调整界面的大小。

在Qt设计师中,设置主窗口的 geometry、minmumSize、maxmumSize 这三个属性的高、宽相同,这样界面就无法发生变化。

2、设置控件的位置、大小。

注意:只有特殊的界面可以这样处理

1、已知客户的界面大小,且固定不会更改。

2、界面中需要短时间使用,不需要给用户调整的功能,例如:登录界面。

2、相对定位布局

主要思路:当用户调整窗口的大小时,根据窗口的大小,自动改变控件的位置和大小。

1、当用户改变窗口的大小时,Qt会自动调用窗口的void resizeEvent(QResizeEvent *event)虚函数,如果我们把窗口类的resizeEvent函数覆盖,当窗口的大小发生改变时,调用的就是我覆盖后的resizeEvent函数。

2、在resizeEvent函数的内部,QSize size = event->size() 可以获取到窗口的大小,然后根据窗口大小与控件的比例,设置控件的位置、大小。

3、自动布局

借助Qt设计师中的Layouts工具对窗口进行自动布局。

1、往窗口中添加一个自动布局器,激活窗口的自动布局功能。

2、右击窗口,选择布局

水平布局:控件只能呈一行,根据窗口的大小自动排列。

垂直布局:控件只能呈一列,根据窗口的大小自动排列。

栅格布局:控件可以row*col方式排序,根据窗口的大小自动排列。

3、给窗口选择自动布局方案后,布局器可以删除也可以保留。

4、自动布局器

在窗口中划分一块区域,这个区域内控件进行自动排列。

Vertical Layout 垂直布局器,控件竖着排列

Horizontal Layout 水平布局器,控件横着排列

Grid Layout 栅格布局器,

FormLayout 列数受限的栅格布局器,最多只能两列

5、自动布局器的成员边界

layoutTopMargin 上边界

layoutBottomMargin 下边界

layoutLeftMargin 左边界

layoutRightMargin 右边界

layoutSpacing 成员间的空隙

layoutStreach 显示每个成员的显示比例,默认全是0,也就是1:1

6、sapcers控件

专门用于配合自动布局的工具,可以把它理解为弹簧垫片,避免让控件紧贴着窗口的边框。

Horizontal Spacer 水平垫片

Vertical Spacer 垂直垫片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值