QT

发布时间:2019-06-16 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了QT脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
老师说有项目需要用到QT,看了Qt教程,对QT进行了简单了解

Qt是什么

Qt是一个跨平台的C++图形用户界面应用程序开发框架。广泛用于开发GUI程序,这种情况下又被称为部件工具箱。也可用于开发非GUI程序,比如控制台工具和服务器

QT环境

搭建环境 QT的 Hello World
#include <QApplication>
#include <QWidget> //窗口的控件
#include<QPushButton>
#include<QLabel>

int main (int argc, char **argv){
    QApplication app(argc, argv);

    //窗口
    QWidget W;
    W.setWindowTitle(QString("我是标题"));

    QLabel *label = new QLabel(&W);
    label->setText("Hello World");

    //按钮
    QPushButton B;
    B.setText("我是按钮");
    B.setParent(&W);
    B.move(100,100);

    W.show();

    return app.exec();
}

界面:

QT

在这里的“ · ”和“ -> "用法是一样的

图形用户界面

Qt的图形用户界面的基础是QWidget。QWidget不是一个抽象类别。Qt中所有类型的GUI组件如按钮、标签、工具栏等都派生自QWidget,而QWidget本身则为QObject的子类。Widget负责接收鼠标,键盘和来自窗口系统的其他事件,并描绘了自身显示在屏幕上。每一个GUI组件都是一个widget,widget还可以作为容器,在其内包含其他Widget。

布局

布局管理类别用于描述一个应用程序的用户界面中的Widget是如何放置。当视窗缩放时,布局管理器会自动调整widget的大小、位置或是字号,确保他们相对的排列和用户界面整体仍然保有可用性。

QT有内置的布局管理类型:

QT

学习了布局简单的完成了界面:

QT

信号和槽

Qt利用信号与槽(signals/slots)机制取代传统的callback来进行对象之间的沟通。当操作事件发生的时候,对象会发提交一个信号(signal);而槽(slot)则是一个函数接受特定信号并且运行槽本身设置的动作。信号与槽之间,则透过QObject的静态方法connect来链接。

信号在任何运行点上皆可发射,甚至可以在槽里再发射另一个信号,信号与槽的链接不限定为一对一的链接,一个信号可以链接到多个槽或多个信号链接到同一个槽,甚至信号也可连接到信号。

以往的callback缺乏类型安全,在调用处理函数时,无法确定是传递正确类型的参数。但信号和其接受的槽之间传递的数据类型必须要相匹配,否则编译器会提出警告。信号和槽可接受任何数量、任何类型的参数,所以信号与槽机制是完全类型安全。

信号与槽机制也确保了低耦合性,发送信号的类别并不知道是哪个槽会接受,也就是说一个信号可以调用所有可用的槽。此机制会确保当在"连接"信号和槽时,槽会接受信号的参数并且正确运行。

说白了,把信号和槽可以比喻为短信, 一条短信可以发给多个人,一个人也可以接受多条短信

利用信号和槽实现窗口跳转

QT

实现代码:

QT

QT中Lambda表达式实现信号和槽

Lambda表达式,不用定义槽函数,不用指定信号接收者;需要在头文件中添加 config += C++11

QT

QT

最终实现代码,效果和上面完全一致

QT

= : 把外部所有局部变量,类中所有成员函数以值传递方式

总结

QT可视化编程,不那么抽象,但是QT编译器有点“坑”,反应慢的不行

脚本宝典总结

以上是脚本宝典为你收集整理的QT全部内容,希望文章能够帮你解决QT所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。