美文网首页
QT的GUI设计基础(002)

QT的GUI设计基础(002)

作者: 独一无二的柠檬 | 来源:发表于2019-02-19 19:36 被阅读0次
    图标.jpg

    1,UI文件设计与运行机制。(以新建一个Widget Application项目为例,选择QWidget作为窗体基类)

    项目文件组成(四部分):

    • 项目管理文件——“.pro”

    • 主函数文件——“main.cpp”

    • 界面文件——“.ui”

    • 窗体相关的文件——“widget.h” “widget.cpp” “widget.ui” “ui_widget.h”。

    2,可视化UI设计。(以新建一个Widget Application项目为例,选择Qialog作为窗体基类)

    *界面组件布局

    Qt界面设计使用了布局(layout)功能,可以使界面上组件的排列和分布更有规则。

    *信号与槽

    信号与槽是Qt设计的基础,也是一大创新。举例:按下按钮A后窗口B关闭。其逻辑顺序如下:

    信号(signal) clicked() 槽(slot) closed()
    按钮A 按下 窗口B 关闭

    *可视化生成槽函数原型与框架

    选中面板上的组件,右击调出快捷菜单,选择“go to slot”,之后通过对话框选择点击实现信号与槽的功能。

    3,代码化UI设计。(以新建一个Widget Application项目为例,选择QDialog作为窗体基类,创建时取消创建窗体,即不勾选“Generate form”复选框)
    代码化比可视化更加强大和灵活,接下来介绍如何创建:
    *界面创建

    • QWDlgManual类定义
    • 界面组件的创建与布局

    *信号与槽的关联
    在设计UI使用纯代码时,信号与槽的关联当然也需要代码来完成。函数iniSignalSlot()可以初始化所有信号与槽的关联。
    很显然,仅仅使用代码工作量会很庞大和复杂,但是为了兼顾简便和灵活,可以采用混合式UI设计。

    4,混合方式UI设计

    *设计目的
    可视化可以直观的进行界面设计,提高工作效率,但是在可视化中某些组件可能无法可视化的添加到界面上,这是就需要代码来解决;采用纯代码设计效率太低,过程非常繁琐,但是功能很强大和灵活。因此需要代码的时候用代码,可视化可以解决的用可视化,这样就能取其长,避其短。

    *创建项目并添加资源文件
    (以新建一个Widget Application项目为例,选择QMainWindow作为基类,新建类名称设为QWMainWind)

    *设计Action
    Action可以创建菜单项,工具栏按钮,还可以设置为QToolButton按钮的关联Action。QAction是一个类,可以在界面设计上创建Action,并编写其trigger()信号的槽函数。点击这些由Action创建的菜单项,按钮就是执行Action的槽函数。
    *设计菜单和工作栏
    本项目的窗体类QWMainWind是从QMainWindow继承的,具有菜单栏,工具栏,状态栏。

    *代码创建其他界面组件
    UI设计器可以完成主要的界面功能,但是这些组件还不能工作,还需要编写一些代码来实现界面功能。
    *Action的功能实现
    Action的主要信号是trigger(),为一个Action的trigger()信号编写好槽函数之后,菜单和工具栏上由此Action创建的菜单项和工具栏都关联此槽函数。
    Action有很多功能,比如剪切,复制,粘贴,清除,可以对文本进行操作,另外Action还可以设置粗体,斜体,下划线等等功能。

    *手工创建的组件的信号与槽
    编写槽函数代码,将信号与槽关联起来。

    *为应用程序创建图标
    一般Qt Creator创建的可执行文件有默认图标,如果想自定义,只需两步:

    1. 将一个图标文件(必须是“.ico”后缀)复制到项目源文件目录下;
    2. 在项目配置文件里用RC_ICONS设置图标文件名,并添加以下代码:
    RC_ICONS = AppIcon.ico
    

    这样就可以了。

    5,Qt Creator的使用技巧
    主要是快捷键和使用技巧。

    相关文章

      网友评论

          本文标题:QT的GUI设计基础(002)

          本文链接:https://www.haomeiwen.com/subject/bmofyqtx.html