QT——学习笔记一

本文介绍了QT这一跨平台的C++GUI框架,包括其历史、安装方法,特别是5.15后的开源安装步骤。接着,文章详细展示了QT的基本编译过程,通过记事本编写代码创建简单的GUI窗口。然后,通过qmake和mingw32-make进行项目编译。此外,还提到了QtCreator的使用,以及利用该工具创建项目和图形化设计界面。最后,文章讲解了QT中的信号和槽机制,展示如何实现按钮事件与程序功能的联动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、QT的介绍

QT是一种跨平台C++图形用户界面应用程序开发框架,可以类比于手机的Android和IOS,他们也同样,08年诺基亚收购开发QT的公司,当时的诺基亚手机界面就是由QT编写的,在汽车中控屏幕中也使用QT进行显示。

二、QT的安装

1.在QT5.15版本以后都为开源,安装较为复杂,我们使用在线安装

进入网站Index of /official_releases/online_installers (qt.io)选择对应版本下载即可。

2.创建账号后点击下一步即可

3.选择安装目录

4.选择组件

其余步骤点击下一步即可

等待下载完毕,就安装完成了。

三、QT的编译过程

Qt Creator采用界面和逻辑相分离,图形化设计界面,操作简单,清晰。

但是我们先可以用记事本编写,体会编译的整个过程。

创建一个如下图的windows运行窗口

1.准备代码
#include <QApplication>

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

    return app.exec();    //app.exec()保持程序运行
}

新建各个控件的类

#include <QLabel>
#include <QLineEdit>
#include <QPushButton>

QLabel *infoLabel = new QLabel;
QLabel *openLabel = new Qlabel;
QLineEdit *cmdLineEdit = new QLineEdit;
QPushButton *commitButton = new QPushButton;
QPushButton *cancelButton = new QPushButton;
QPushButton *browseButton = new QPushButton;

为控件添加文字

infoLabel ->setText("input cmd:");
openLabel ->setText("open");
commitButton ->setText("commit");
cancelButton ->setText("cancel");
browseButton ->setText("browse");

创建布局控件,并设置内容

#include <QHBoxLayout>
#include <QVBoxLayout>

QHBoxLayout *cmdLayout = new QHBoxLayout;
cmdLayout->addWidget(openLabel);
cmdLayout->addWidget(cmdLineEdit);

QHBoxLayout *buttonLayout = new QHBoxLayout;
buttonLayout->addWidget(commitButton);
buttonLayout->addWidget(cancelButton);
buttonLayout->addWidget(browseButton);

QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addwidget(infoLabel);
mainLayout->addLayout(cmdLayout);
mainLayout->addLayout(buttonLayout);

创建显示界面

#include <QWidget>
QWidget w;
w.setLayout(mainLayout);
w.show();

全部代码

#include <QApplication>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QWidget>

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

    QLabel *infoLabel = new QLabel;
    QLabel *openLabel = new Qlabel;
    QLineEdit *cmdLineEdit = new QLineEdit;
    QPushButton *commitButton = new QPushButton;
    QPushButton *cancelButton = new QPushButton;
    QPushButton *browseButton = new QPushButton;

    infoLabel ->setText("input cmd:");
    openLabel ->setText("open");
    commitButton ->setText("commit");
    cancelButton ->setText("cancel");
    browseButton ->setText("browse");

    QHBoxLayout *cmdLayout = new QHBoxLayout;
    cmdLayout->addWidget(openLabel);
    cmdLayout->addWidget(cmdLineEdit);

    QHBoxLayout *buttonLayout = new QHBoxLayout;
    buttonLayout->addWidget(commitButton);
    buttonLayout->addWidget(cancelButton);
    buttonLayout->addWidget(browseButton);

    QVBoxLayout *mainLayout = new QVBoxLayout;
    mainLayout->addwidget(infoLabel);
    mainLayout->addLayout(cmdLayout);
    mainLayout->addLayout(buttonLayout);

    QWidget w;
    w.setLayout(mainLayout);
    w.show();

    return app.exec();
}
2.项目创建及编译

1)打开Qt自带的命令行窗口

2)进入刚才编写的代码路径中,使用qmake -project生成工程文件,结果如下图所示

3)以记事本打开工程文件,并添加QT +=widegts gui

PS:在运行过程中出现了错误

4)再次输入命令qmake

使用mingw32-make生成exe

编译14和36行出现错误

更正后重新编译,运行仍未成功,运行时出现各种文件缺失。

删除相关文件重新运行,出现Project ERROR: Cannot run compiler 'cl'. Output:的问题,添加相关环境变量,重启电脑后未出现

运行成功!

四、Qt Creator的使用

项目的创建

1.创建项目的步骤,单击创建,这里选择默认的窗口程序

2.设定名称和路径

3.构建体系,选择qmake

4.选择类型,MainWindow是带菜单的窗口,Widget是不带菜单的

5.选择编译器,任选,其他点下一步即可

图形化设计

双击界面文件,即可进入图形设计界面

和华为云平台的cube魔方表单类似,都是通过拖拽进行编辑

放置各类控件,并调整命名和显示文字

单击左下角运行按钮,结果如下:

五、信号和槽

在界面中点击为信号,接受信号为槽

按钮的使用

在确认按键下编写如下代码

单击运行后,输入notepad,单击确认,可以打开记事本

能打开大部分在windows/ststem32中的文件

控件与键盘链接

通过在connect()函数把槽和信号连接,是两者产生关系

connect()有四个参数,谁发出信号,发出信号类型,谁处理信号,如何处理

用enter结束,运行结果同上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值