QT入门学习记录01

这篇具有很好参考价值的文章主要介绍了QT入门学习记录01。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录
  • 前言
  • 一、Qt安装
  • 二、创建一个Qt工程
  • 三、基类的区别和常用函数
    • 1.QWidget
      • 1.1 设置窗口标题
      • 1.2 设置窗口大小和显示位置
      • 1.3 显示窗口
      • 1.4 隐藏窗口
      • 1.5 改变窗口大小
      • 1.6 设置窗口的位置
      • 1.7 刷新窗口
    • 2.QDialog
      • 2.1 QDialog对话框
  • 总结

前言

做嵌入式的上位机开发需要要用到Qt的,Qt是一个开源、跨平台的程序和UI开发框架。我们使用Qt可以用Python或者C++进行开发,这里我使用的全部都是C++,不涉及到Python。

一、Qt安装

要学习Qt前先得学习一下如何安装Qt,这里安装的是QtIDE,是Qt的集成开发环境,首先搜索下面的网址:Qt下载官网

进入这个网站后会出现下面的界面:

QT入门学习记录01

这里点击archive,这个目录中是存放Qt开发环境安装包的,然后进入后:

QT入门学习记录01

选择qt这个目录,这个目录中是存放Qt开发环境的下载目录:

QT入门学习记录01

这里有很多的Qt开发环境的版本,选择一个你喜欢的(这里推荐用5.12),然后选择:

QT入门学习记录01

在里面选择一个版本后点击:

QT入门学习记录01

这里如果你是Windows电脑,选择.exe,如果是Linux,根据你Linux的版本选择安装包。

下载后双击安装,一开始会让你进行登录,登录的话需要去Qt官网进行注册一下(这个可以自己进行百度),然后将注册的填写进去即可。

QT入门学习记录01

这边推荐去官网进行注册,在这个软件中注册不一定能注册得上去

第二步就是选择安装路径和关联文件,也就是设置一下路径

QT入门学习记录01

设置完后就需要选择安装组件:

这里需要选择的是

  • MinGW 5.3.0 32 bit
  • Qt Charts
  • Qt Data Visualization
  • Qt Purchasing
  • Qt Virtual Keyboard
  • Qt WebEngine
  • Qt Network Auth(TP)
  • Qt Remote Object(TP)
  • Qt Speech(TP)
  • Qt Creator 4.3.0 CDB Debug
  • MinGW 5.3.0

根据上面列出的工具进行选择即可。

二、创建一个Qt工程

安装完成后打开Qt Creator,打开后就会出现下面的界面:

QT入门学习记录01

点击左上角的文件,在里面选择新建项目或文件,然后弹出下面的界面:

QT入门学习记录01

这里是选择一个模板或者文件和类,因为我们要建一个工程,所以选择项目,在里面选择Application(Qt),其中有一个Qt Widgets Application,选择完成后点击Choose..进入下一步

QT入门学习记录01

这里是为改项目取个名字并放置在一个文件夹中。

设置好后点击下一步:

QT入门学习记录01

这里选择构建项目的编译器,使用默认的qmake即可,然后点击下一步。

QT入门学习记录01

这里是选择基类的类和类名,文件名,使用ui吗是一些设置。

需要注意的是Base class中可以选择三个选项,第一个是QMainWindow

第二个是QWidget,第三个是QDialog,先选择QWidget,等创建完工程再慢慢解释一下这些基类的不同点。

这个Generate form可以选也可以不选,先选择吧,可能后面有用。

如果不选这个选项,那么ui界面就没有办法使用。然后点击下一步

下一步中的内容选择默认即可,这个是选择翻译文件,但咱用不到,所以直接默认。

下一步就是选择解释器了

QT入门学习记录01

这里选择MinGW 32bit的就可以了,然后下一步,。

下一步也是默认即可

QT入门学习记录01

这里是告诉你这个工程要添加的文件和添加版本控制系统,如果你有可以添加,没有就算了,直接点击完成。

等一会就会创建好工程:

QT入门学习记录01

左边是文件,右边是编辑区,我们来看看创建出来的这些文件:

首先是Student.pro,这个是工程的配置文件

QT入门学习记录01

在这你可以使用代码配置一下这个项目使用的一些库或者文件。

然后是放头文件和源文件的文件夹了,先看一下源文件

在源文件中有两个文件

QT入门学习记录01

main.cpp是入口文件,在里面有一个main函数,程序的入口:

#include "widget.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);  // 实例化QAppLication类
    Widget w;   // 实例化Widget类
    w.show();   // 显示窗口
    return a.exec();   // 让程序一直循环不退出
}

上面的代码就是main函数中的内容,可以看到这里的代码很少,只需要运行这个就可以出现一个窗口了,在里面其实就是创建一个窗口并显示并且保持显示不退出,所以我们的代码不是在这写的。

那代码在哪写呢?可以在main.cpp中看到一个类,Widget这个类,这个类是一个窗口类,在源文件中就可以找到这个文件widget.cpp了。

点击这个文件进入:

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
}

Widget::~Widget()
{
    delete ui;
}

可以看到这里的代码也很少,有一个构造函数和一个析构函数,构造函数中有一个ui->setupUi(this),这个代码是将ui文件中搭建好的页面更新显示出来。我们的代码一般书写到这个widget.h这个文件中。

在文件夹中还有一个文件夹Forms文件夹,这个文件夹中只有一个文件.ui,这个就是可以使用拖动控件来达到搭建UI界面的功能

QT入门学习记录01

三、基类的区别和常用函数

在之前创建工程的时候说过,有三个基类,那这三个基类的区别是什么呢?

下面就给大家说一下这些区别。

1.QWidget

先说一下我们上面创建的一个基类,这个类是Qt中用于构建GUI界面的基础类之一,它是集成QObject类的,这个类提供了窗口控件等基本元素的功能。

它有很多的功能函数,下面给大家介绍一下这个基类中的一些常用函数:

1.1 设置窗口标题

使用的函数为:

void setWindowTitle(const QString &)

这个函数可以将窗口的标题改为你指定的内容,比如说我要将我的窗口标题改为:hello,那我的代码可以这样写(这些代码写在widget.cpp就是我上面说的那个文件中

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    setWindowTitle("hello");    // 设置窗口标题 
}

运行后窗口的标题就会被改变:

QT入门学习记录01

当然也可以用实例化变量来进行调用:

widget.setWindowTitle("hello");

1.2 设置窗口大小和显示位置

这个使用的函数是:

void setGeometry(int x, int y, int w, int h)
/*
x:窗口出现位置的x轴
y:窗口出现位置的y轴
w:窗口的宽
h:窗口的高
*/

它还有一种重载的函数:

void setGeometry(const QRect&);

我们先看上面的那种方式,其中x和y是指以你桌面的左顶点为(0,0)来进行计算

QT入门学习记录01

比如说我们要将这个窗口位置设置在中心位置,窗口的宽度和高度分别为600和400,那么代码如下:

setGeomentry(1920 / 2, 1080 / 2, 600, 400);

运行代码后窗口出现的位置就在中心:

QT入门学习记录01

这里为什么是1920/2和1080/2,因为我的电脑桌面的分辨率就是为1920和1080。

也可以用实例化变量来调用设置:

widget.setGeomentry(1920 / 2, 1080 / 2, 600, 400);

如果使用第二种方式,需要先创建一个QRect对象,然后把这个对象放在形参的位置即可:

QRect rect = QRect(1920/2, 1080/2, 600, 400);
this->setGeometry(rect);

1.3 显示窗口

这里使用的函数是

show();

我们在main.cpp中是见到过的,当时实例化Widget这个类后,用实例化对象中的show()方法就显示出该窗口了。

widget.show();

1.4 隐藏窗口

使用的函数是:

hide();

这个是可以隐藏QWidget创建的窗口,使用的方法就是直接用实例化出来的实例化对象.hide()

widget.hide();

1.5 改变窗口大小

这里使用的方法是:

void resize(int w, int h)

填写的参数很简单,就是窗口改变后的宽和高。

比如说我没有使用setGeomentry()更改窗口的位置,那我就可以使用这个函数对窗口进行更改大小:

resize(600, 400);

当然你也可以直接直接用实例化对象来调用这个方法:

widget.resize(600, 400);

1.6 设置窗口的位置

如果你想单独修改窗口的位置,并不想修改大小就可以使用这个函数

void move(int x, int y);

也有一个重载的

void move(const QPoint &);

其实都差不多

move(600, 400);
widget.move(600, 400);
QPoint point = QPoint(600, 400);
widget.move(point);

1.7 刷新窗口

使用的函数是:

void QWidget::update();

更新窗口的一些小部件

2.QDialog

QDialog一般用来实现对话框,对话框分为模块化对话框和非模块化对话框。

模块化对话框是在主窗口的顶层,如果不解决这个对话框,那么没办法和主窗口进行交互。

非模块化对话框和模块化相反,当激活对话框后不会阻塞主窗口,让你的主窗口也能和用户进行交互。

这个控件也有一些基本的方法,比如说:show()exec()move()resize()hide()setGeomentry()setGeomentry()

2.1 QDialog对话框

一般使用这个控件是来做一个对话框的,比如说我在上面刚才创建好的工程中添加一下用继承QDialog的函数写一个弹出的对话框。

首先在Headers文件夹右键选择Add New

QT入门学习记录01

然后再里面选择C++ Header File

QT入门学习记录01

然后点击下一步,再这取一个名字即可,这里叫Dialog.h

QT入门学习记录01

然后再右键Sources文件夹,还是和上面一样的,只不过需要选择C++ Source File。这里叫Dialog.cpp

然后在Dialog.h中写上下面的代码:

#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>

//QT_BEGIN_NAMESPACE
//namespace Ui { class Widget; }
//QT_END_NAMESPACE

class Dialog:public QDialog{
    public:
        Dialog();
        ~Dialog();
};

#endif // DIALOG_H

Dialog.cpp中将析构函数和构造函数都实现一下,但是里面没有东西:

#include "Dialog.h"

Dialog::Dialog(){

}

Dialog::~Dialog(){

}

因为我懒得加,你也可以加一个改变标题的方法。

Dialog::Dialog(){
    setWindowTitle("this is message");
}

然后在widget.cpp中实例化一下对象,然后创建一个按钮并且连接一下:

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    QPushButton* button1 = new QPushButton;
    button1->setParent(this);
    button1->setText("dian yi xia");
    connect(button1, &QPushButton::clicked, [=](){
        this->dialog.show();
    });
}

这里看不懂没关系,先了解一下,后面会慢慢说一下的。

运行的结果就是在Widget的页面中有一个按钮,你点一下它就会跳出一个我们刚才创建的一个页面。

总结

Qt真的很简单,大家多查查资料就可以了。文章来源地址https://www.toymoban.com/news/detail-609981.html

到了这里,关于QT入门学习记录01的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Redis学习笔记01】快速入门(含安装教程)

    先来看门见山的给出 Redis 的概念: Redis:是一种基于内存的高性能K-V键值型NoSQL数据库 Redis官网:https://redis.io/ 1.1 初识NoSQL 想必大家都对关系型数据库更为熟悉!如MySQL、Oracle、SQL Server都是比较常见的关系型数据库,所谓关系型数据库主要以二维表作为数据结构进行存储,但

    2024年01月22日
    浏览(38)
  • Flutter 01 目录结构入门

    demo1: Flutter把内容单独抽离成一个组件: 在Flutter中自定义组件其实就是一个类,这个类需要继承StatelessWidget/StatefulWidget 前期我们都继承StatelessWidget。后期讲StatefulWidget的使用。 StatelessWidget 是无状态组件,状态不可变的widget; StatefulWidget 是有状态组件,持有的状态可能在

    2024年02月06日
    浏览(30)
  • QT C++入门学习(2) QT Creator写一个简单的上位机控制LED

    上位机:指的是可以直接发送操作指令的计算机或者单片机,一般提供用户操作交互界面并向用户展示反馈数据。 典型设备:电脑、平板、手机、面板、触摸屏 下位机:指的是与机器相连接的计算机或者单片机,一般用于接收和反馈上位机的指令,并根据指令控制机器执行

    2024年02月10日
    浏览(33)
  • 从零开始的Django框架入门到实战教程(内含实战实例) - 01 创建项目与app、加入静态文件、模板语法介绍(学习笔记)

      Django是目前比较火爆的框架,之前有在知乎刷到,很多毕业生进入大厂实习后因为不会git和Django框架3天就被踢掉了,因为他们很难把自己的工作融入到整个组的工作中。因此,我尝试自学Django并整理出如下笔记。   在这部分,我将从Django的安装讲起,从创建项目到制

    2024年02月09日
    浏览(50)
  • Qt学习笔记之二--创建一个简单的qt互动界面(超级无敌巨详细,0基础也能会,主打的就是图多,语句通俗)

      选择第一个选项,然后两个下一步------ 直到   这里要选择基类,我们选择Qwiget  至于为什么,可以看看我收藏的这篇博客QMainWindow和QWidget的区别_qwidget和qmainwindow_独行侠_阿涛的博客-CSDN博客 ok,创建完成后,我们使用快捷键Ctrl+R来运行一下,看看是否会弹出小窗口,弹出说

    2024年02月05日
    浏览(44)
  • 【Scala入门】Scala下载及安装(Windows)以及Idea创建第一个scala项目

    目录 一、安装准备 二、Scala下载安装 三、Idea 创建Scala项目 在安装之前,确保你的电脑上装有Jdk 8(Jdk 1.8),且环境变量配置正确。如果没有安装Jdk,请参照其他文章先安装Jdk 8(Jdk 1.8)。 (1)确认环境变量方法:使用Win + R 快捷键调出下面窗口,输入“cmd”,按下回车。

    2024年02月05日
    浏览(41)
  • Qt 入门实战教程(目录)

    为何我要写Qt入门教程 《C++自学精简实践教程》 1 面向企业开发,你在这里学到的任何一步操作,都会直接在企业里用到。 2 注重设计思路训练,抽象分析问题的能力。 1.1 Windows Qt 5.12.10下载与安装 1.2 我们的第一个 Qt 窗口程序(超详细)(附源码下载) 1.3 Qt 开发 CMake工程

    2024年02月11日
    浏览(25)
  • 01 前言

    什么是C++ C++发展史 C++的重要性 如何学习C++ 关于本专栏 C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机, 20世纪80年代, 计算机界提出了OOP(object oriented programming:

    2024年02月19日
    浏览(27)
  • Vue框架学习记录之环境安装与第一个Vue项目

    首先是Node.js的安装,安装十分简单,只需要去官网下载安装包后,一路next即可。 Node.js是一个开源的、跨平台的 JavaScript 运行时环境 下载地址,有两个版本,一个是推荐的,一个是最新的,现在博主学习的话就直接安装最新的即可。 验证是否安装成功,只需要在cmd窗口中输

    2024年02月09日
    浏览(27)
  • 01、创建型-单例模式--只有一个实例

      单例模式是设计模式中最简单但又最常用的的设计模式之一,是很多人学的第一个设计模式。引用百度百科的定义:单例模式创建的类在当前进程中,保证一个类只会被实例化一次,并提供了全局访问点,使用的时候通过单例提供的方法来获取实例。在确保线程安全的前

    2024年04月27日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包