Qt5开发学习之Qt概述(一)

  • 起源

界面可能是每一个90后对于电脑的第一印象,透过屏幕看到多姿多彩的世界,从一个小小的窗口去触碰天空的边界,穿过界面到达梦想的彼岸。每一个程序员进入计算机的世界的理由各不相同,有人向往黑客世界中快速飞过的代码,有人则向往开发绚烂多彩的界面程序。作为一个从Windows来接触计算机的程序员,也有一颗做出一个功能强大、界面漂亮的程序的初心。

界面开发的程序有很多,作为一个C程序员,功能做强大的选择有:VS的MFC和Qt;但是和Visual C++相比,Qt方便简单、功能完善、跨平台、扩展能力强,可以用于嵌入式开发。所以,在开发组件方面,我选择的是Qt。

从今天起,重新学习Qt的编程开发,主要参考的书籍为《Qt5开发及实例》,坚持每一个阶段都更新一篇博客,博客中会附上对于此阶段的知识总结和实例代码,如果有兴趣的同学可以共同学习、共同进步。


  • Qt概述

Qt是一个跨平台的C++图形用户界面应用程序框架。它为应用程序开发者提供建立艺术级图形界面所需的所有功能。它是完全面向对象的,很容易扩展,并且允许真正的组件编程。

Qt的优势:跨平台,几乎支持所有的平台;接口简单,容易上手,学习QT框架对学习其他框架有参考意义;一定程度上简化了内存回收机制 ;开发效率高,能够快速的构建应用程序;有很好的社区氛围,市场份额在缓慢上升;可以进行嵌入式开发。


  • Qt下载

当前最新的Qt版本为Qt5.9,在Qt官网可以直接下载,想对Qt进行深入开发的同学可以注册一个Qt账号,关注有关的最新消息。下载地址为:http://download.qt.io/official_releases/qt/5.9/5.9.1/qt-opensource-windows-x86-5.9.1.exe.mirrorlist
可以选择各种版本进行下载,我选择的是Windows版本的。截图如下:Qt下载
下载完毕后,进行一键傻瓜式安装即可。Linux平台下,要先改变安装包的权限再进行安装。


  • 开发环境简介

安装完毕之后,打开 Qt Creater 可看到操作项目的一系列功能按钮:
这里写图片描述

1、“欢迎”:即此时展示的界面,可以选择自带的演示例子,也可以创建新的工程或者打开最近的一些项目;
2、“编辑”:在此处写代码进行程序设计;
3、“设计”:这里对ui界面进行设计、部件属性、信号和槽、布局等的设置;
4、“Debug”:对程序进行调试,观察程序运行情况;
5、“项目”:对开发环境进行相关的配置;
6、“帮助”:可以在此处输入关键字,检索相关信息。


  • 配置Qt环境变量

可能有的小伙伴安装好Qt后迫不及待的写了一个“Hello world”来庆祝一下,猛然发现程序编译不过,因为安装之后要对系统的环境变量进行配置。

首先打开系统环境变量,找到“path”;然后在“path”中添加Qt目录下“bin”所在的目录,我的是:

C:\Qt\Qt5.9.1\5.9\mingw53_32\bin;
C:\Qt\Qt5.9.1\Tools\mingw530_32\bin;

  • 第一个Qt程序

实现的功能:输入一个十进制数,转换并显示对应的二进制数。
1)创建新工程:模板选择 Application 下的 Qt Widgets Application ,命名为first 路径为新建的一个QtProject ,类名first, 基类选择QDialog,取消创建界面的选项,完成
2)控件类介绍:此案例中主要用到的控件有QLabel、QLineEdit、QPushButton、QGridLayout

QLabel:QT界面中的标签类,是一个操作非常方便的控件,可以在标签上插入文字、图片等;
QLineEdit:文本输入框类;
QPushButton:Qt中的普通按钮类;
QGridLayout:网格布局类,用于规划界面中没个控件的布局的。

3)直接贴上代码,在代码中写入注释
first.h:

#include <QDialog>
#include <QLabel>
#include <QPushButton>
#include <QGridLayout>
#include <QLineEdit>

class first : public QDialog
{
    Q_OBJECT

public:
    first(QWidget *parent = 0);
    ~first();

private:
    QLabel *label1, *label2;
    QPushButton *button;
    QLineEdit *lineEdit;

private slots:
    void ShowHex();

};

first.cpp:

#include "first.h"

first::first(QWidget *parent)
    : QDialog(parent)
{
    this->resize(200, 200);// 设置界面大小

    label1 = new QLabel(this);
    label1->setText(tr("请输入一个十进制数:"));// 第一个标签,提示输入一个十进制数
    label2 = new QLabel(this);
    label2->setText(tr("十六进制数为:"));// 第二个标签,用于显示16进制数

    button = new QPushButton(this);
    button->setText(tr("转换"));// 转换按钮

    lineEdit = new QLineEdit(this);// 用于接收输入的十进制数

    // 设置布局,使用addWidget函数,向布局对应位置添加控件
    QGridLayout *mainLayout = new QGridLayout(this);
    mainLayout->addWidget(label1, 0, 0);
    mainLayout->addWidget(lineEdit, 0, 1);
    mainLayout->addWidget(label2, 1, 0);
    mainLayout->addWidget(button, 1, 1);

    // 点击按钮发送信号,触发槽函数
    connect(button, &QPushButton::clicked, this, &first::ShowHex);

}

first::~first()
{

}

// 槽函数
void first::ShowHex()
{
    bool ok;

    QString tmp;
    QString value = lineEdit->text();// 获取输入框的数据

    int valueHex = value.toInt(&ok, 10);// 将获取的数据转成int类型
    tmp.sprintf("十六进制数为:%x", valueHex);// 将十进制数转成十六进制数的QString类型
    label2->setText(tmp);// 第二个标签显示转换完成的十六进制数
}
发布了17 篇原创文章 · 获赞 10 · 访问量 3万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览