当前位置:   article > 正文

Linux环境下QT开发(二)——初识QT_tina 上开发qt

tina 上开发qt

Linux环境下QT开发(二)——初识QT

QT最大的优点之一就是它可以直接“画”出程序的界面,如果你用过MFC或者VB之类的,就能体会到一行代码也不用写,直接拖放控件就能画出界面的幸福。但在这个系列的文章里,我并不打算教大家如何使用QT Designer那种辅助画界面的工具,我们要手写界面。没错!用代码定义一切!!
来,我们做一个Hello World吧!ヾ(≧O≦)〃嗷~
本篇文章代码仓库地址:https://gitee.com/crystalgabrielle/QTSamples/tree/master/2/2_1_HelloWorld/HelloWorld
QTSamples中的2/2_1_HelloWorld

一、创建项目

  1. 从左上角的菜单栏选择文件->新建文件或项,这里有很多应用种类可供选择,但我们偏要使用其他项目当中的Empty qmake Project。
    创建项目创建项目
  2. 编辑名字和位置
    编辑名字
  3. 剩下的默认就好了
    配置编译器项目管理
  4. 好啦,新项目创建成功啦,看起来就是这样的,空空荡荡的,哈哈哈!
    空项目

二、编辑项目

1.编辑配置文件

新建好的空项目只有一个项目名加后缀pro的文件,是该项目的配置文件,相当于一个全局的注册文件,在程序中用到的QT组件、模块都要添加到这里,其它资源、图片之类的也都要添加进来。
我们先加上核心组件和widget吧,语法很简单,在helloworld.pro文件中加入如下代码

QT += core gui
QT += widgets
  • 1
  • 2

加入核心组件

2.创建第一个类

C++程序是用类堆起来的,QT也是的。所以我们写QT程序的时候,只要继承这些类就好啦。QT的类有多么复杂,从这张截图就可以管窥一二。
(图源 https://blog.csdn.net/faith_yu/article/details/53025582)
QT类继承在项目中创建一个新的类。文件->新建文件或项目,选择文件和类,C++ Class。
helloworld类
helloworld类
名字叫什么都行,剩下的默认就好了。
头文件定义文件
QT自动为这个类创建了一个头文件和一个定义文件,我们的主要工作就是修改这两个。
QT有三大常用框架类,QWidgetQMainWIndowQDialog。我们就让它继承QWidget类吧。
helloworld.h改成这样:

#ifndef HELLOWORLD_H
#define HELLOWORLD_H
#include<QWidget>
#include<QString>
#include<QLabel>
#include<QPushButton>
#include<QObject>

class helloworld : public QWidget
{
    Q_OBJECT
private:
    QLabel *hello_board;
    QPushButton *exit_button;
public:
    explicit helloworld(QWidget *parent = nullptr);

private slots:
    void exit_qt();
};

#endif // HELLOWORLD_H

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

helloworld.cpp改成这样:

#include "helloworld.h"

helloworld::helloworld(QWidget *parent) : QWidget(parent)
{
    this->show();
    this->setGeometry(100,100,400,300);
    hello_board=new QLabel(this);
    hello_board->setGeometry(100,100,200,100);
    hello_board->setText("Hello!This is QT!");
    hello_board->show();
    exit_button=new QPushButton("Push me to exit!");
    exit_button->setParent(this);
    exit_button->setGeometry(125,225,150,50);
    connect(exit_button,SIGNAL(clicked()),this,SLOT(exit_qt()));
    exit_button->show();
}

void helloworld::exit_qt(){
    delete hello_board;
    delete exit_button;
    this->close();
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

虽然还没有介绍QT是怎么编成的,但是你大概应该能看出来一二。

3.创建程序入口

现在只有一个类,项目还不能运行,没有入口。在项目中创建main.cpp文件,这是QT项目的入口。
文件->新建文件或项目,选择文件和类,C++源文件,名称为main.cpp
创建main.cppmain.cpp在其中添加如下代码:

#include <QApplication>
#include<helloworld.h>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    helloworld new_hello;
    a.exec();
    return 0;
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

前面的那两个文件你可以先不去了解,我希望你能记住这个main.cpp首先要创建一个QApplication对象,之后创建一个你自己的类的实例,它会自动启动你的类,然后让QApplication对象进入主事件循环a.exec()

三、运行项目

在简单开发过程中,无论是以Debug方式运行还是以Release方式运行,都推荐关闭Shadow build,如果开启这个选项,运行时会在项目文件夹下新建对应的文件夹,来进行构建,但这样有时会很麻烦,比如你在目录文件夹下存放图片、音频等资源文件,但构建的时候是在子目录下,会无法调用外部资源。
关闭Shadow build关闭好后点击左下角的绿色箭头开始运行,你选择了DebugRelease都无所谓,我们做的都是小程序,没必要分得太细致啦~
运行程序铛铛铛!我们的HelloWorld出来啦!点一下按钮就可以退出,有没有开心到飞起呢?
我们的Hello World

四、总结

到这里你应该能成功跑起来你的QT Hello World了吧,哈哈哈!
看完这篇文章,我希望你能了解创建和运行QT项目的一般方法,当然,这并不一般,而是我喜欢的从零做起的方法,哈哈哈!其实用代码写界面也没有多么难,习惯之后还是很顺畅的。现在你还不需要了解那个类是怎么写的,但我希望你能记住那个main.cpp,因为在后面我们的写的程序当中,基本都是那样做的,创建一个QApplication对象,创建自己类的实例,然后进入主事件循环,程序就这么跑起来了。如果未来你会用QT做更高级的开发,可能还会在main.cpp里做更多的事情。好啦,下期见啦~~~

后记

你可能会很好奇为什么QT的画界面那么方便,我却对代码情有独钟。
大一做QT小组作业的时候,我分到的都是像数独、扫雷那样的有很多相同控件的程序。那时才疏学浅,也不知道怎么才能方便的画那么多,就算画出来也不好控制。当时的解决方案是在代码里用数组代替,相比较画控件,代码的自由度更高,你可以更改、控制的也更多。后来慢慢走火入魔,创建项目时干脆创建一个空项目,自己从零做起。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/235082
推荐阅读
相关标签
  

闽ICP备14008679号