QT学习——Qt工具介绍,Qt助手使用,第一个Qt程序,Qt字符串和字符编码

2023-11-12

一、Qt主要工具介绍

1)qt助手(assistant)
2)qt构建器(qmake)
3)qt设计师(designer)
4)qt转换器(uic)
5)qt资源编译器(rcc)
6)qt元对象编译器(moc)//处理语法扩展
7)qt创造器IDE(qtcreator)

二、Qt助手的使用

例如:了解QApplication类的功能和作用

1)先看第一句话,了解该类的功能,在点击more看详细说明

2)了解头文件,构造选项,继承关系

3)properties(成员变量)

4)public functions(公有的成员变量)

5)reimplemented public function(公有的虚继承)

6)public slots(槽)

7)singnal(信号)

8)static public members(静态成员)

9)Reimplemented Protected Functions(保护的虚函数)

10)Detailed Description(详细说明)

三、第一个Qt程序

1.创建工程目录

mkdir Hello

注:每个Qt程序都要放在一个独立的工程目录下

2.进入工程目录,编写源代码(cpp)

cd Hello
vi main.cpp

3.执行“qmake -project”,生成工程文件(Hello.pro)

注:添加“QT += widgets”,指定需要连接widgets模块相关的头文件和库文件

4.执行“qmake”,根据上一步工程文件,生成编译链接脚本Makefile

5.执行“make”,根据上一步Makefile完成编译和链接,如果没有错误,会生成和工程名一样的可执行程序(如果有错误,修改源码后,重新make即可,上面3,4步不需要重复执行)

6.运行程序“./Hello”

main.cpp

#include <QApplication>
#include <QLabel>
int main(int argc,char** argv)
{
    //创建Qt应用程序
    QApplication app(argc,argv);
    //创建标签控件(部件、构件)
    QLabel label("Hello Qt!");
    //显示标签控件
    label.show();
    //让应用程序进入事件循环
    return app.exec();
}

Hello.pro

QT += widgets 

TEMPLATE = app
TARGET = Hello
INCLUDEPATH += .

# Input
SOURCES += main.cpp

四、Qt字符串和字符编码

1.常见的编码

1)linux默认编码utf8-8

2)windows默认编码gbk

3)Qt显示的字符串默认使用的unicode

注:如果使用C风格的常量字符串构造QString对象时,默认会调用“fromUtf8()”,按照uft-8编码方式转换为和QString相匹配的unicode编码。如果学代码时用的就是uft-8编码,不需要显示转换也能正常显示。

2.编码转换的类(QTextCodec)

1)创建GBK编码对象

QTextCodec* codec = QTextCodec::codecForName("GBK");

 2)编码转换

QString string = code->toUnicode("中文GBK字符串");

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QT学习——Qt工具介绍,Qt助手使用,第一个Qt程序,Qt字符串和字符编码 的相关文章

  • 使用 cmake 将两种解决方案合二为一

    我有两个单独的 Visual Studio 2013 解决方案 我想将它们迁移到一个解决方案中 因为第一个解决方案 使用 Qt 充当第二个解决方案的 GUI 最后 我希望有一个结构如下的单一解决方案 Solution All Build P
  • 有没有办法在没有 QApplication::exec() 的情况下使用 Qt?

    有没有一种安全的方法可以在不调用 QApplication exec 的情况下使用 Qt 我有许多不同的对象正在对多个资源执行长期进程 至少其中一个正在与 Web 应用程序服务器进行通信 我正在制作一个 GUI 应用程序 提示用户在正确的时
  • Qt Creator:如何区分 win32 和 win64

    我必须在 pro 文件中执行类似的操作 win32 LIBS L 3rdparty libusb win32 lib msvc llibusb else win64 LIBS L 3rdparty libusb win32 lib msvc
  • QT/QML Android App,点击通知栏时打开应用程序

    我为 Android 应用程序制作了一个 QT 当我单击平板电脑中上面看到的按钮通知栏时 但是 如果单击通知 我的应用程序将打开 聚焦 不知道 并显示黑色窗口 简单来说怎么做呢 我的代码是 package org ays operation
  • Qt mouseReleaseEvent() 未触发?

    我有一个显示图片的库 我们称之为 PictureGLWidget 其中 class PictureGLWidget public QGLWidget 所以 PictureGLWidget 扩展了 QGLWidget 在PictureGlWi
  • QTcpSocket 有时不发送数据

    我有两个 QT 应用程序 一个应用程序可以被认为保存了大数据 它每秒向第二个应用程序发送大约 10 KB 的数据块 之前我尝试使用QUdpSocket来传输数据 但由于MTU限制在2 5K左右 并且需要自己分割和重新组合数据 所以我改用QT
  • 加权 Voronoi 的 CGAL 2D APOLLONIUS 图 - 如何生成和获取面和顶点?

    我正在尝试根据阿波罗尼乌斯图生成加权沃罗诺伊 我正在使用 CGAL 库 我找不到如何从 apollonius 获取面和顶点的好例子 我有以下类型定义 typedef double NT typedef CGAL Cartesian lt N
  • 从布局中按名称获取小部件

    如果我想从 python Qt 的布局中获取特定的小部件 我应该如何进行 到目前为止我所做的 for i in range self ui horizontalLayout 14 count here it does fail name s
  • 如何创建用于 QML 的通用对象模型?

    我想知道是否有任何宏或方法如何将 Qt 模型注册为 QObject 的属性 例如 我有AnimalModel http doc qt io qt 5 qtquick modelviewsdata cppmodels html qabstra
  • 即使在可访问性中勾选应用程序,AXIsProcessTrustedWithOptions 也不会返回 true

    As this question https stackoverflow com questions 17693408 enable access for assistive devices programmatically on 10 9
  • Qt:如何连接到 SQLite?

    我安装了 SQLite3 解压到 c sqlite 创建了一个数据库 c sqlite mzsales 现在我试图在 QTableView 中显示其内容 QSqlDatabase db QSqlDatabase addDatabase QS
  • Qt:在多个布局中使用一个小部件

    我有一个 QTabBar 所有选项卡都应该有相同的小部件 layout1 gt addWidget w layout2 gt addWidget w 然而打电话addWidget第二次导致该小部件在第一个布局中消失 有没有办法使用一个小部件
  • QT从QTableWidgetItem继承到Widget并覆盖'<'运算符

    我想要一个QTableWidget具有定制的某些单元QProgressBars 并且我希望能够对包含这些的列进行排序 我的定制QProgressBar继承自两者QProgressBar and QTableWidgetItem 并且我正在覆
  • Qt 5.6 测试版 Visual Studio 2015

    我已经安装了这个 http download qt io development releases qt 5 6 5 6 0 beta qt opensource windows x86 msvc2015 5 6 0 beta exe mi
  • Qt - 设置不可编辑的QComboBox的显示文本

    我想将 QComboBox 的文本设置为某些自定义文本 不在 QComboBox 的列表中 而不将此文本添加为 QComboBox 的项目 此行为可以在可编辑的 QComboBox 上实现QComboBox setEditText cons
  • 从 Qt4 中的文本文件中逐字读取

    我想在 Qt4 中逐字读取一个文本文件 说实话我对它很陌生 我想在另一个文件中每行一个字写入 我可以在 C 中做到这一点 没有任何问题 但是当我尝试在 Qt4 中使用 ifstream 和 ofstream 时 我遇到了错误 这是我的 Qt
  • QSerialPort 中的 readAll() 不包括最后发送的响应

    我正在使用 Qt 来控制串行设备 如果我向串行设备发送命令 我会执行类似的操作serial gt write command r n 我制作了一个按钮 它将纯文本小部件内的文本更改为串行端口的响应 为了获得串口的响应 我使用serial g
  • Qt moc 在头文件中实现?

    是否可以告诉 Qt MOC 我想声明该类并在单个文件中实现它 而不是将它们拆分为 h 和 cpp 文件 如果要在 cpp 文件中声明并实现 QObject 子类 则必须手动包含 moc 文件 例如 文件main cpp struct Sub
  • 静态变量中的 qt tr()

    我在 qt 中的翻译方面遇到问题 我的项目中的所有翻译都工作正常 但有一个翻译位于类的静态变量中 相应部分代码如下 头文件类似于这样 typedef struct int type QString problematicString inf
  • 安装J语言的JQt IDE,出现错误

    我一直按照这里的说明进行操作 http code jsoftware com wiki System Installation Linux http code jsoftware com wiki System Installation L

随机推荐

  • latex公式记录(待完善)

    记录使用latex过程中遇到的公式 符号等 1 空格 quad 2 大于等于 geq 小于等于 leq 大于 textgreater 小于 textless 3 括号 大括号 a 绝对值 lvert a rvert 内积尖括号 langle
  • 【PCIe 5.0 - 8】PCIe 事务层详解4 - First/Last DW Byte Enables规则

    First Last DW Byte Enables规则 Byte Enables包含在Memory I O 和Configuration Requests中 本节定义了相应的规则 Byte Enables出现在Request header
  • IDE /字符串 /字符编码与文本文件(如cpp源代码文件)

    文章目录 概述 文本编辑器如何识别文件的编码格式 优先推测使用了UTF 8编码 字符编码的BOM字节序标记 重分析各文本编辑器下的测试效果 Qt Creator的文本编辑器 系统记事本 VS的文本编辑器 Notepad 编译器与代码文件的字
  • Python实现十进制小数转IEEE754单精度浮点数转换

    def ConvertFixedIntegerToComplement fixedInterger 浮点数整数部分转换成补码 整数全部为正 return bin fixedInterger 2 def ConvertFixedDecimal
  • VUE自定义指令directive和inserted

    VUE自定义指令directive和inserted 1 什么事自定义指令 1 2使用自定义指令的方式 2 设置自定义组件 2 1 设置全局指令 2 2 设置私有指令 2 3 钩子函数 3 案例 1 什么事自定义指令 指令 Directiv
  • Java实现给图片局部打马赛克

    因为项目需要用到给图片打码的功能 本身实现也不是很复杂 就没有借鉴其他类库 参照网上的一些资料实现了一个简单的给图片局部打码的功能 也可以给一个图片的多个局部进行打码 ImageArea java package com test 图片区域
  • hdfs写数据流程

    上面图看不懂没关系 下面我有简单语言说明下其过程 现在客户端要上传一个300M的文件 1客户端先请求namenode 告诉namenode我有上传一个叫作cls 初解禁的文件 2namenode检查元数据中是否有这个文件 有就告诉客户端这个
  • 量子遗传算法原理与MATLAB仿真程序

    写在前面 1 其实这些智能算法的思想都差不多 只不过是各自搜寻方式 编码方式 种群更新方式等不一样而已 量子遗传算法是在遗传算法的基础上使用了一种新的编码方式 2 直接看前面介绍可能会觉得较难 先浏览概念任何根据案例走一遍就明白了 3 遗传
  • 阿里巴巴Java开发手册(详尽PDF版).

    前言 不知不觉间 2022 年已经过了一半了 作为技术圈中你 准备好迎接最新的变化了吗 在本文中 我们将以编程界最常用的编程语言 Java 为例 分享最为主流的技术与工具 目录 一 编程规约 一 命名风格 二 常量定义 三 代码格式 四 0
  • MDK中undefined常见错误警告解决

    c文件中包含 h文件 添加 h文件和 c文件路径 同名 h文件是否存在重复 加入 ifndef后不易找出该错误 一般在库搬移中会出现该错误 可以通过在工程文件下搜索该 h c文件查看是否有同名存在 这点很重要 有时候编译不过卡了半天就在这个
  • 嵌入式系统的通讯协议:I2C通讯、SPI通讯、USB通讯、SDIO 通讯、I2S通讯、PCI通讯简介

    本文简单的描述了在实际应用中会碰到的一些总线协议 让各位读者对实际系统中的总线有个概念上的理解 一 I2C I2C Inter Integrated Circuit 总线是一种由PHILIPS公司开发的两线式串行总线 用于连接微控制器及其外
  • Chrome 69 域名不显示 www 的解决办法

    Chrome 69 域名不显示 www 的解决办法 复制以下内容到 Chrome 地址栏 选择 Disabled 即可 chrome flags omnibox ui hide steady state url scheme and sub
  • 【Shell牛客刷题系列】SHELL25 nginx日志分析3-统计访问3次以上的IP

    该系列是基于牛客Shell题库 针对具体题目进行查漏补缺 学习相应的命令 刷题链接 牛客题霸 Shell篇 该系列文章都放到专栏下 专栏链接为 专栏 Shell 欢迎关注专栏 本文知识预告 本文首先复习了grep awk sed cut等命
  • CSS3学习笔记(1)

    1 什么是CSS 样式表定义如何显示 HTML 元素 就像 HTML 中的字体标签和颜色属性所起的作用那样 样式通常保存在外部的 css 文件中 我们只需要编辑一个简单的 CSS 文档就可以改变所有页面的布局和外观 2 CSS规则 CSS声
  • 打印1000到2000之间的闰年,并统计闰年的次数。 (C语言)

    分析 判断是否为闰年条件为以下 1 能被4整除并且不能被100整除的是闰年 2 能被400整除的是闰年 代码 include
  • 重写(覆盖)和重载的区别

    牛客网题 下列对函数double add int a int b 进行重载 正确的是 int add int a int b int c int add double a double b double add double a doubl
  • 设置固定ip地址bat文件_iPad/iPhone通过smb与Windows互传文件

    更新 前段时间我的iPhone iPad莫名其妙连不上了 今天又仔细检查了一下 发现是因为电脑的IPv4地址自己变了 原本是192 168 0 104 现在变成了192 168 0 101 也就是smb 之后要输入的地址 查这个地址的方法是
  • stop带有临时表的slave步骤

    author skate time 2014 06 30 stop带有临时表的slave步骤 在stop slave之前一定要确定变量 Slave open temp tables 为0 如果在不为0时 停止了slave server或sl
  • 不要再在以太坊和Metamask开发web时使用密码

    我在ConsenSys为各种客户构建了大量的概念证明 通常他们想要利用以太坊区块链来解决某些业务用例 奇怪的是 这些系统通常设计有标准的网络登录 即用户名和密码 我总是问自己为什么我还在这样做设计 毕竟 这是今天以太网目前可以解决每个烦人的
  • QT学习——Qt工具介绍,Qt助手使用,第一个Qt程序,Qt字符串和字符编码

    一 Qt主要工具介绍 1 qt助手 assistant 2 qt构建器 qmake 3 qt设计师 designer 4 qt转换器 uic 5 qt资源编译器 rcc 6 qt元对象编译器 moc 处理语法扩展 7 qt创造器IDE qt