QT学习——1.下载QT及创建一个简单工程

7 篇文章 1 订阅
订阅专栏

一、什么是QT

QT是一款跨平台的C++图形用户界面应用程序开发框架,可用于开发桌面应用程序、移动应用程序、嵌入式系统等。这里我们主要用来应用于嵌入式系统,可以理解为用QT制作嵌入式“前端”。

QT提供了一整套现成的工具和库,使得开发人员能够更加高效地创建出精美和易于操作的界面,而不必在不同的平台上重复劳动。当然我们也要掌握基本的C/C++语法,这能帮助我们更好理解QT的代码逻辑。

二、下载QT

下载网址:Index of /new_archive/qt

我下载的是5.11.1版本,较为稳定,进到5.11.1/文件夹中发现有很多个下载文件,如果Win系统的用户下载文件后缀名为exe的文件即刻,macOS用户下载mac版本,若需要应用在Linux系统的就选择linux版本。我这里暂时只用在win系统,所以只下载Win版本,包括后面的文章也都是基于Win版本的操作界面进行记录。

安装过程与其他软件相似,这里不做过多赘述,一路选accept和next即可。

需要注意的是:

  1. QT的安装需要邮箱认证进行账号注册,根据提示完成即可;
  2. 在选择安装路径的时候,路径里面不能包括中文;
  3. 在选择所需安装库和工具时,可勾选QT中的MinGW 5.2.0 32bit(Win系统专属)、Android x86、Android ARMx7(这两个Android可以用于开发手机APP,可以理解为手机模拟器)、QT Virtual Keyboard、QT Script (Deprecated);Tools中的Qtcreator 4.6.2 CDB Debug、MinGW 5.3.0。
  4. 以上没有提到的均选默认即可。

三、创建一个QT工程(搭建页面)

1.打开QT Creator->New Project->默认选项就是我们要创建的工程类型了(如下图所示)

2.同样,工程保存的路径里面不能有中文->Kits中的内容默认设置即可->Details页面中,基类选择QWidget->其他默认即可,点击完成则自动创建工程

3.我们可以看到创建好的工程里面已经有许多文件,点击Forms->widget.ui即可进入图像可视化编程界面,在这里我们来设计项目界面。

4.将左边一栏的控件拖拽至中间的界面,即可完成放置,以下为一个登陆界面的基本控件,大家可以根据需要自行添加控件。

5.点击某一控件,右下角那一栏就是该控件的属性,可以在那里调整控件的大小、字体大小、输入/输出属性。这里列出目前用的几个:调整字体大小、将LineEdit输入控件输入的内容设置为密文的形式。点击画布空白处,也可以在右边的属性栏调整画布的大小。

6.点击调试按钮(左下角一个绿色的三角形),即可进行运行,或者按Ctrl+R运行调试。

tips:因为电脑分辨率不同,运行时如果发现控件被挤压,画面不完整,可以在main.cpp文件中的main函数里面添加这一行:

QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);

再回到图形编程界面点击运行就可以正常显示啦!

四、创建一个QT工程(信号和槽)

搭建好的页面对于按键、输入是没有反应的,这时候需要我们设置信号和槽,来实现相应的数据应用和跳转等操作。

1.给控件重命名。给控件起一个简单通俗易懂的名字,可以方便我们记忆以及操作。在右上角对象中,双击相应控件名进行修改。被选中的控件也会在界面设计栏中亮起。 

目前只对账号输入控件、密码输入控件、登录按钮、注册按钮四个控件进行重命名。

2.信号和槽

①信号:每个控件都能发出特定的信号

在左边的“帮助”中,将“目录”修改为“索引”,然后查找pushButton。

在QPushButton Class中可以看到,Inherits的是当前控件的父类(C++继承的说法)、Inherite By的是当前控件的儿子。

我们点击QAbstractButton,就可以进入到父类,寻找到Signal,里面就是PushButton从父类继承过来的信号函数,我们常用的就是第一个void clicked(booll checked=false),显而易见这个信号的作用,这里就不做过多赘述了。

②槽:槽函数,把槽函数绑定在某一个空间的信号上,当信号给出则执行槽函数

③关联信号和槽:

a.自动关联:在UI文件里面自动关联,选中控件,右键选择“转到槽”,这里我们选择第一个函数clicked()。

点击“ok”之后,在编辑那里看到的.cpp文件就自动给我们加上了一个槽函数,并且在.h文件中给我们声明好了槽函数。这里的声明只能声明在private slots或者public slots下面。

 

 如何判断自己关联成功?

可以在槽函数内写入Debug,如下代码:

void Widget::on_registerBt_clicked()
{
    qDebug("success!");
}

这里使用的qDebug不需要包含头文件,其他的写法可能需要包含头文件,可以在文件开头include进去。具体qDebug的使用可以参考这篇文章: http://t.csdn.cn/UOcvY

#include <QDebug>

运行看到有对应输出即为关联成功。 

 b.手动关联

手动关联并不是将自动关联生产的一系列代码敲进文件,而是在widget.cpp使中用到connect函数。

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    connect(ui->logBt,SIGNAL(clicked()),this,SLOT(logBt_clicked_slot()));
    //ui->logBt(登录按钮)、SIGNAL(信号,选择clicked)、SLOT(表示关联到槽函数)
}

void Widget::logBt_clicked_slot()
{
    qDebug("log on successed!");
}

 在widget.h文件中声明槽函数。

private slots:
    void on_registerBt_clicked();
    void logBt_clicked_slot();//手动关联添加声明

 这样就可以实现与自动关联相同的效果啦!

关于connect函数,我们可以这样理解,详细的解释可以在帮助里面搜索connct进行查看。

connect(A,SIGNAL(B),C,SLOT(D));
当对象A发出B信号时,就会触发对象C的槽函数D

第一次写文章,在准备秋招笔试面试的时候发现自己有很多不会的东西,例如操作系统、QT、RTOS等,打算边学边记录,给自己一个动力,也是一个回顾的资料。关于QT的学习我看的是b站北京迅为科技的,讲得很好很细致,从项目中学习QT也很高效,很实用。在学习过程中遇到的一些问题以及解决的方法可能是视频里面没有的,包括一些其他的相关知识我也会查找资料后写在这里。希望有帮助!

编译好的qt5,7,适用于讯为iTOP-4412开发
10-31
已经编译好的qt5.7,可用于将qt开发出来的应用移植到讯为iTOP-4412开发板上,还需要ARM交叉编译工具arm-2014.05-29-arm-none-Linux-gnueabi-i686-pc-linux-gnu.tar.bz2 网址:http://www.veryarm.com/arm-none-linux-gnueabi-gcc tslib1.4 网址:http://vdisk.weibo.com/s/AcUHxOERV2k0?sudaref=www.baidu.com
Qt入门练习项目——TCP通讯.zip
08-03
2. **Qt项目创建**:使用Qt Creator创建一个新的Qt项目,选择C++语言,并根据需求选择对应的工程模板,如Qt Widgets Application或Qt Console Application。 3. **Qt GUI设计**:Qt Creator内置了可视化布局工具,...
Qt 第一个程序 Hello World!
Mountain_tai_li的博客
04-10 554
作为程序猿来说,接触的第一个最简单的程序往往都是 “Hello world”,“Hello world”最早出现在Brian Kernighan《C编程语言》。现在,很多程序员在搭建完新的开发环境的时候,往往也习惯于通过hello world代码来测试环境是否正常。这时下面的头文件、源文件和界面文件都会自动生成。3、选择 编译器kit, 当选择MSVC20xx的时候,本地机器必须已经安装过相应的Visual Studio版本,否则无法运行。可以在主界面添加需要的控件,也可以在选中界面中的控件进行属性更改。
QT开发(一) 构建一个简单的桌面程序
最新发布
cesheng3410的博客
03-01 2503
本文简单介绍了QT的概念和应用场景,详细讲解了一个简单桌面程序的构建过程,通过标签控件讲解了桌面程序的设计过程。
Qt实现一个简单的应用程序——桌面助手
qq_51064962的博客
10-23 2064
Qt设计一个桌面助手,功能包括查看日历,计时器,计算器。
数据库课程设计——用qt和oracle写一个简单的教务管理系统.zip
12-24
本项目“数据库课程设计——用Qt和Oracle写一个简单的教务管理系统”正是以此为背景,通过集成QT GUI工具包与Oracle数据库系统,实现了一个实用的教务管理软件。下面将对该项目的关键知识点进行详细阐述。 首先,...
基于C++&Qt实现的在线点餐系统(客户端+服务端——.zip
09-12
标题中的“基于C++&Qt实现的在线点餐系统(客户端+服务端——.zip”表明这是一个使用C++编程语言Qt框架开发的项目,它包括客户端和服务器端的完整功能,可以实现在线订餐服务。Qt是一个跨平台的C++图形用户界面...
C++程序设计实践项目——学生信息管理系统,基于Qt+MySQL.zip
09-23
【标题】"C++程序设计实践项目——学生信息管理系统,基于Qt+MySQL" 这个项目是一个典型的C++编程实践,旨在实现一个学生信息管理系统。它利用了Qt作为图形用户界面(GUI)开发框架,并结合MySQL数据库进行数据存储...
基于QT的数据结构课设——图书管理系统.zip
09-26
【标题】"基于QT的数据结构课设——图书管理系统"是一个使用C++编程语言QT框架开发的项目,主要目标是实现一个图书管理系统的功能。QT是一个跨平台的应用程序开发框架,支持多种操作系统,如Windows、Linux和macOS...
qt简单程序
06-25
简单QT程序 #include #include #include int main(int argc, char *argv[]) { QApplication a(argc, argv); // Dialog w; // w.show(); QDialog dg; QPushButton bt("按键",&dg;); // bt.minimumSize(); bt.move(QPoint(10,20)); dg.show(); return a.exec(); }
一个简单的背单词的QT程序
05-01
这是一个简单的单词软件,有四种模式,可以向普通单词软件一样以ABCD为选项来背诵单词,可以背诵自己添加的单词,可以向单词库里面添加单词,也可以在库里面搜索单词。
QT5学习笔记(4)-QT信号槽机制
u012826733的博客
03-06 468
信号和槽机制 信号槽是 Qt 框架引以为豪的机制之一。所谓信号槽,实际就是观察者模式。当某个事件发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(signal)。这种发出是没有目的的,类似广播。如果有对象对这个信号感兴趣,它就会使用连接(connect)函数,意思是,将想要处理的信号和自己的一个函数(称为槽(slot))绑定来处理这个信号。也就是说,当信号发出时,被连接的槽函数会...
简单QT示例
蜂蜂的博客
03-31 1011
刚学qt,写了一个简单qt例子。在图形中有:东西南北中五个按钮,按东图形会向右移动10个像素,以此类推,按中会复原。
QT学习---第一个QT程序
zhaojing880311的博客
09-28 935
QT CMAKE
一个最简单Qt应用程序
yangjinjingbj的博客
11-29 435
这里main把控制权转交给QtQt完成事件处理工作,当应用程序退出时exec的值就会返回。在exec中,Qt接受并处理用户和系统的事件并且把它们传递给适当的窗口部件。一个程序要确保一直运行,至少得有一个循环,这就是Qt主消息循环,在其中完成来自窗口系统和其它资源的所有事件消息处理和调度。也处理应用程序的初始化和结束,并且提供对话管理。QApplication应用程序类是管理图形用户界面应用程序的控制流和主要设置。QApplication::exec开始程序的生命循环、消息循环。
Qt项目---简单的计算器
莫浅子的博客
08-03 5752
在这篇技术博客中,我们将介绍如何使用Qt框架实现一个简单的计算器应用。我们将使用C++编程语言Qt的图形用户界面库来开发这个应用,并展示如何实现基本的算术操作。首先,我们需要在Qt Creator中创建一个新的Qt Widgets应用程序项目。这个项目将提供我们所需的基本框架和文件结构。在创建项目时,我们可以选择包含所需的文件和模板代码,以便更快地开始工作。选择然后给项目命名然后后面的选择QWidget最后一步默认就行了。
一、QT主界面简介和创建一个QT工程
Is_Superman的博客
07-03 2486
QT主界面简介和创建一个QT工程
Qt学习】编写第一个Qt程序(使用纯代码)
Q小鑫
05-04 2640
其实大部分情况下还是使用qtcreator这个工具去编写我们的Qt程序,而为什么要记录下这一篇笔记呢?主要是想走一遍Qt编译的一个流程,更好的理解其内部的编译! 一、创建存放Qt程序的文件夹,以及Qt的main函数 mkdir test cd test vim main.cpp 二、编写Qt程序 举个例子: 任务: 创建Qt应用程序 添加一个标签(QLabel),并且显示“hello,I'm label!” 添加一个按钮(QPushButton),并且显示“hello,I'm butt
0011__[嵌入式开发学习分享]迅为i.MX6开发QT 鼠标和触摸的问题
行潇
05-07 153
https://www.cnblogs.com/yueliang17/p/6704298.html
哈尔滨工程大学:Qt课程设计——从指针到多边形绘图与应用程序开发
"设计指针 - Linux/Qt课件" 是关于在Qt平台上进行C++编程的教程,由哈尔滨工程大学的黄攀主讲,课程共分为5次,10个学时,旨在教授学员Qt的基本概念、信号传递机制、控件设置和使用,以及基于Qt的应用程序开发。...
写文章

热门文章

  • QT学习——2.图片的应用、布局、界面切换 550
  • QT学习——5.网络编程(TCP) 372
  • QT学习——3.QT下的串口编程 180
  • QT学习——7.时间编程 171
  • QT学习——1.下载QT及创建一个简单工程 143

分类专栏

  • QT 7篇

最新评论

  • QT学习——2.图片的应用、布局、界面切换

    FUJ1M0T0: 感谢作者大大,大一新生靠看您文章做了课设

  • QT学习——5.网络编程(TCP)

    没想好叫什么94: 芜湖,有帮助就好!!

  • QT学习——5.网络编程(TCP)

    qq_58460834: 感谢,新手收获帮助

  • QT学习——5.网络编程(TCP)

    CSDN-Ada助手: 恭喜您写了第5篇博客!标题看起来非常吸引人,网络编程(TCP)是一个非常有趣的主题。您在这个系列的学习中一直保持着坚持和创作的热情,真是令人钦佩!在网络编程方面的知识,我相信您已经有了很好的掌握。 接下来,我建议您可以考虑在博客中分享一些实际应用案例,比如如何使用QT进行网络通信等。这样可以帮助读者更好地理解并运用所学知识。同时,您也可以考虑扩大博客的范围,涉及更多网络编程的相关内容,比如UDP协议等。这样可以进一步丰富您的博客内容。 再次恭喜您的持续创作,期待您的下一篇博客!祝您越来越好!

  • QT学习——6.网络编程(UDP)

    CSDN-Ada助手: 恭喜您写了第6篇博客!标题为“QT学习——6.网络编程(UDP)”。网络编程是一个非常有用和有挑战性的主题,而您的文章给出了很好的解释和指导。在这篇博客中,您对UDP协议进行了深入的探索,这对于想要学习网络编程的读者来说是非常有价值的。 我真的很欣赏您对技术的热情和持续创作的精神。您的博客不仅帮助了自己巩固知识,也为其他人提供了学习的机会。对于像我这样的读者来说,这是一份难得的宝藏。 作为下一步的创作建议,我希望能看到更多关于网络编程的主题,比如TCP协议、Socket编程等。在您的博客中,您可以继续深入研究和分享一些实际案例,通过解决实际问题来帮助读者更好地理解和应用这些知识。 再次祝贺您的成功,并期待看到更多精彩的博文!谢谢您的付出和分享!

最新文章

  • QT学习——7.时间编程
  • QT学习——6.网络编程(UDP)
  • QT学习——5.网络编程(TCP)
2023年7篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

PHP网站源码塘坑seo吉祥营销网站双龙网页制作福永网站优化按天收费民治网站开发龙岗网络广告推广荷坳网站排名优化大浪标王惠州百度网站优化坑梓SEO按天计费南联百度seo荷坳SEO按效果付费坪山设计网站惠州网站推广系统石岩外贸网站制作同乐网站推广工具吉祥网络营销吉祥百度竞价大浪建网站塘坑企业网站建设观澜SEO按天收费光明企业网站制作广州网站推广工具东莞建站大浪SEO按效果付费塘坑网站建设设计大运SEO按天扣费龙岗外贸网站设计沙井企业网站建设广州百搜标王歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化