欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Qt5——从零开始的Hello World教程(Qt Creator)

程序员文章站 2022-07-04 23:22:57
一、打开Qt Creator 本次的目的是用Qt Creator建立一个Hello World项目,在安装Qt之后,首先要打开Qt Creator。 就是它啦,打开后会显示如下页面。 二、建立新项目 点击文件——新建文件或项目 或者使用快捷键Ctrl+N便可以打开新建项目菜单。 这里选择其他项目—— ......

一、打开qt creator

  本次的目的是用qt creator建立一个hello world项目,在安装qt之后,首先要打开qt creator。

Qt5——从零开始的Hello World教程(Qt Creator)

  就是它啦,打开后会显示如下页面。

Qt5——从零开始的Hello World教程(Qt Creator)

二、建立新项目

  点击文件——新建文件或项目 或者使用快捷键ctrl+n便可以打开新建项目菜单。

Qt5——从零开始的Hello World教程(Qt Creator)

  这里选择其他项目——empty qmake project创建一个空的qt项目 helloworld_qt。

Qt5——从零开始的Hello World教程(Qt Creator)

  一路下一步到完成之后就可以看到已经成功建立的项目helloworld_qt。

Qt5——从零开始的Hello World教程(Qt Creator)

  这个生成的新项目包含两个文件。

 Qt5——从零开始的Hello World教程(Qt Creator)

  helloworld_qt.pro是qt的工程文件,helloworld_qt.pro.user是用于记录该次编译所用的打开工程的路径,编译器、构建的工具链、生成目录、打开工程的qt-creator的版本等的文件,更换编译环境是需删除。

  这样建立qt项目便完成了。

  由于这里建立的是一个空项目,我们需要添加文件来编写代码,右击项目helloworld_qt点击add new,选择c++中的c++ source file添加一个c++源代码文件,起名叫main一路下一步到完成。

Qt5——从零开始的Hello World教程(Qt Creator)

  这样就有了一个可以用来编写代码的main.cpp

三、编写代码

  打开main.cpp在其中编写代码我们需要建立一个qt应用程序,需要引入qt应用程序类qapplication所以我们引用它

#include<qapplication>

 

Qt5——从零开始的Hello World教程(Qt Creator)

  但是这里报错了,编译器告诉我们‘qapplication’类文件没有找到,这是因为没有连接qt widgets库,打开helloworld_qt.pro引入qt widgets库,添加一句qt += widgets按下ctrl+s保存,之后回到main.cpp

Qt5——从零开始的Hello World教程(Qt Creator)

Qt5——从零开始的Hello World教程(Qt Creator)

  果然,错误消失了。

  继续编写代码,我们还需要有一个窗体,需要引入qwidget类

  

#include<qwidget>

  之后便可以开始设计主函数了。

#include<qapplication>
#include<qwidget>
int main(int argc, char* argv[]){
    //在程序编译完成后会生成一个.exe后缀的可执行文件
    //argc是命令行参数个数
    //argv[0]记录程序名
    //argv[1]~argv[argc-1]记录的输入参数
    //argc argv是标识符,可以修改名称
    //main()函数有argc和argv或没有,即int main() 或void main,都是合法的。
    qapplication app(argc, argv);
    //应用程序抽象类
    //使用在argv中的argc个命令行参数构造一个名为app的qapplication对象。
    //qapplication 类管理图形用户界面应用程序的控制流和主要设置
    //任何一个使用qt的图形用户界面应用程序,都存在一个qapplication对象

    qwidget w;
    //qwidget类是所有用户界面对象的基类
    //在这里可以把它看作一个窗口,构造了一个窗口对象
    w.setwindowtitle("hello world!");
    //将窗口的标题设为hello world!
    w.show();
    //显示窗体
    return app.exec();
    //exec()函数有一个消息循环,在调用之后,程序就被锁定。等待窗口的关闭
}

  执行一下

Qt5——从零开始的Hello World教程(Qt Creator)

Qt5——从零开始的Hello World教程(Qt Creator)

  成功显示helloworld窗口。 

  窗口建好之后我们便可以向窗口中添加控件了,现在需要在窗体中显示hello world!,我们可以通过qlabel标签实现,要向窗体中添加qlabel标签则同样需要引入qlabel类。

#include <qlabel>

  之后构造一个标签对象

    textlabel.resize(100,15);
    //设定标签宽40高15
    textlabel.move(150, 170);
    //将标签移动到距离左上角水平100px垂直130px的位置
    textlabel.settext("hello world!");
    //标签的初始显示字符串null
    textlabel.setparent(&w);

  标签qlabel也是一个窗体,它继承自qframe,而qframe又继承自qwidget,若想让他显示在我们构造的窗口w中就需要将qlabel对象textlabel的父对象设为w。

  在这个程序中w是主窗口,主窗口是指没有父对象的窗口。

  若在此处不使用textlable.setparent(w),text标签将单独弹出一个窗口。

  这就说明了,所有最终继承至qframe的控件如果不把控件的父对象设置为当前主窗口,控件将单独作为一另个主窗口弹出。

  Qt5——从零开始的Hello World教程(Qt Creator)

  注释textlable.setparent(w),text后的效果

  Qt5——从零开始的Hello World教程(Qt Creator)

  正确效果

  源代码:

#include <qapplication>
#include <qwidget>
#include <qlabel>

int main(int argc, char* argv[]){
    //在程序编译完成后会生成一个.exe后缀的可执行文件
    //argc是命令行参数个数
    //argv[0]记录程序名
    //argv[1]~argv[argc-1]记录的输入参数
    //argc argv是标识符,可以修改名称
    //main()函数有argc和argv或没有,即int main() 或void main,都是合法的。
    qapplication app(argc, argv);
    //应用程序抽象类
    //使用在argv中的argc个命令行参数构造一个名为app的qapplication对象。
    //qapplication 类管理图形用户界面应用程序的控制流和主要设置
    //任何一个使用qt的图形用户界面应用程序,都存在一个qapplication对象
    qwidget w;
    w.resize(400, 400);
    //qwidget类是所有用户界面对象的基类
    //在这里可以把它看作一个窗口,构造了一个窗口对象
    w.setwindowtitle("hello world!");
    //将窗口的标题设为hello world!
    qlabel textlabel;
    //构造一个标签
    textlabel.resize(100,15);
    //设定标签宽40高15
    textlabel.move(150, 170);
    //将标签移动到距离左上角水平100px垂直130px的位置
    textlabel.settext("hello world!");
    //标签的初始显示字符串null
    textlabel.setparent(&w);
    textlabel.show();
    w.show();
    //显示窗体
    return app.exec();
    //exec()函数有一个消息循环,在调用之后,程序就被锁定。等待窗口的关闭
}