Qt - macOS 安装配置

news2024/11/25 19:51:23

文章目录

    • 一、关于 QT
      • 1.2 Qt的发展史
      • 1.3支持的平台
      • 1.4 Qt版本
      • 1.5 Qt 的优点
      • 1.6 成功案例
    • 二、软件安装
      • 1、保证已 Xcode 和 Command Line Tools
      • 2、下载 QT
      • 3、下载 [qtcreator](http://download.qt.io/official_releases/qtcreator/)
      • 查看qt版本
    • 三、创建工程
      • Qt 常见用法
    • 四、基础项目文件
      • `main.cpp` 文件
      • `.pro`文件
      • `mywidget.h`
    • 快捷键


一、关于 QT

  • Qt for macOS
    https://doc.qt.io/qt-5/macos.html

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


1.2 Qt的发展史

  • 1991年 Qt最早由奇趣科技开发
  • 1996年 进入商业领域,它也是目前流行的Linux桌面环境KDE的基础
  • 2008年 奇趣科技被诺基亚公司收购,Qt称为诺基亚旗下的编程语言
  • 2012年 Qt又被Digia公司收购
  • 2014年4月 跨平台的集成开发环境Qt Creator3.1.0发布,同年5月20日配发了Qt5.3正式版,至此Qt实现了对iOS、Android、WP等各平台的全面支持。

1.3支持的平台

  • Windows – XP、Vista、Win7、Win8、Win2008、Win10
  • Uinux/X11 – Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX、FreeBSD、BSD/OS、和其他很多X11平台
  • Macintosh – Mac OS X
  • Embedded – 有帧缓冲支持的嵌入式Linux平台,Windows CE

1.4 Qt版本

Qt按照不同的版本发行,分为商业版和开源版

  • 商业版
    为商业软件提供开发,他们提供传统商业软件发行版,并且提供在商业有效期内的免费升级和技术支持服务。
  • 开源的LGPL版本:
    为了开发自有而设计的开放源码软件,它提供了和商业版本同样的功能,在GNU通用公共许可下,它是免费的。

1.5 Qt 的优点

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

1.6 成功案例

  • Linux桌面环境KDE
  • WPS Office 办公软件
  • Skype 网络电话
  • Google Earth 谷歌地图
  • VLC多媒体播放器
  • VirtualBox虚拟机软件

二、软件安装

1、保证已 Xcode 和 Command Line Tools

安装完毕后,Clang就有了

https://developer.apple.com/downloads/


2、下载 QT

https://www.qt.io/download-qt-installer

拖至页尾

我下载的安装包名为 qt-unified-mac-x64-4.0.1-1-online.dmg


从以下路径进入也可以下载到同样的安装包:

https://www.qt.io/download-open-source

https://download.qt.io 所有下载包

Windows 推荐使用 MinGW 版本(好过VS版本),MinGW 默认编码格式为 utf-8。


3、下载 qtcreator

下载地址:http://download.qt.io/official_releases/qtcreator/


查看qt版本

~/packages/Qt5.14.2/5.14.2/clang_64/bin/qmake

/usr/local/Cellar/qt/5.14.2/mkspecs/macx-xcode


三、创建工程

1、打开 qt creator app


2、创建工程


项目名不能有空格或中文



Base class 有 QWidget、QMainWindow 和 QDialog 可选。这里我们选择 QWidget 。

QWidget 是 QMainWindow 和 QDialog 的父类;是最简单的窗口;

QMainWindow 会有上方的菜单栏,下方的状态栏等;

QDialog 对话框。



不设置版本控制


得到这样的目录结构

https://blog.yowko.com/no-valid-kits-found-on-mac/


Qt 常见用法

1、可以点击 简化树形视图 来不区分 .h 和 .cpp 文件。


2、分栏

点击分栏 是上下分栏效果;可以点击 左右分栏


四、基础项目文件


https://www.bilibili.com/video/BV1g4411H78N?p=5


main.cpp 文件

#include "mywidget.h"
#include <QApplication>// 包含一个应用程序类的头文件
 
//main程序入口  argc命令行变量的数量  argv命令行变量的数组
int main(int argc, char *argv[])
{
    //a应用程序对象,在Qt中,应用程序对象 有且仅有一个
    QApplication a(argc, argv);
    
    //窗口对象  myWidget父类  -> QWidget
    myWidget w;
    //窗口对象 默认不会显示,必须要调用show方法显示窗口
    w.show();
    
    //让应用程序对象进入消息循环
    //当代码阻塞到这行
    return a.exec();

//  a.exac() 相当于下述代码
//    while(true)
//    {
//         if(点击叉子)
//        {
//            break;
//        }
//    }

}  

.pro文件

这个文件最好不要添加任何内容,包括注释。这里添加注释方便解读:

#-------------------------------------------------
#
# Project created by QtCreator 2018-01-05T09:31:24
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets  // 大于4版本以上,包含 widget 模块

TARGET = 01_FirstProject // 目标,也是生成 .exe 程序的名称
TEMPLATE = app             // 模板,app 为应用程序模板;还有 lib, vcapp 等。


SOURCES += main.cpp\  // 源文件,会自动追加
        mywidget.cpp \
    mypushbutton.cpp

HEADERS  += mywidget.h \  // 头文件
    mypushbutton.h


mywidget.h

#ifndef MYWIDGET_H
#define MYWIDGET_H


#include <QWidget> //包含头文件 QWidget 窗口类

class myWidget : public QWidget
{
    Q_OBJECT // Q_OBJECT宏,允许类中使用信号和槽的机制

public:
    myWidget(QWidget *parent = 0); //构造函数
    ~myWidget(); //析构函数
};

#endif // MYWIDGET_H 

快捷键

  • 注释 ctrl + /
  • 运行 ctrl + r
  • 编译 ctrl + b
  • 字体缩放 ctrl + 鼠标滚轮
  • 查找 ctrl + f
  • 整行移动 ctrl + shift + ↑ 或者↓
  • 自动对齐 ctrl + i;
  • 同名之间的.h 和 .cpp切换 F4
  • 查看帮助文档:第一种方式 F1,第二种 左侧按钮, 第三种 C:\Qt\Qt5.6.0\5.6\mingw49_32\bin

2021-02-04

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/785122.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智能安全配电装置应用场景有哪些?

安科瑞 华楠 一、应用背景 电力作为一种清洁能源&#xff0c;给人们带来了舒适、便捷的电气化生活。与此同时&#xff0c;由于使用不当&#xff0c;维护不及时等原因引发的漏电触电和电气火灾事故&#xff0c;也给人们的生命和财产带来了巨大的威胁和损失。 为了防止低压配电…

音频转换工具怎么使用你了解吗?让我来跟你分享背后原理

相信小伙伴们平时都会听听喜欢的音乐放松心情吧&#xff0c;不过你是否遇到过&#xff0c;想在一个播放设备上放一首歌的时候&#xff0c;却发现不支持该格式&#xff1f;音频转换格式软件在我们的生活中扮演着越来越重要的角色。这些软件可以帮助我们将音频文件转换成不同的格…

炒股最好用的5个指标?_通达信公式

摘要: 炒股市场是一个充满挑战的领域&#xff0c;而找到可靠的指标来辅助投资决策是成功的关键之一。在众多的指标中&#xff0c;神奇指标网提供了五个被广泛认为是炒股最好用的指标。本文将详细介绍这五个指标&#xff0c;包括其原理和如何应用它们来辅助投资决策。 导言: …

蓝桥杯专题-真题版含答案-【图形排版】【包子凑数】【位反序数】【自守数】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 &#x1f449;关于作者 专注于Android/Unity和各种游…

Java进阶 —— 多进程并发

前言 在系统学完Java的面向对象编程之后&#xff0c;我们需要认真地来学习Java并发编程&#xff0c;我们在学习计算机操作系统的时候也都了解过进程、线程和协程的概念。在这篇文章中荔枝主要会梳理有关线程创建、线程生命周期、同步锁和死锁、线程通信和线程池的知识&#xff…

android app控制ros机器人一

android开发app&#xff0c;进而通过控制ros机器人&#xff0c;记录开发过程 查阅资料&#xff1a; rosjava使用较多&#xff0c;已经开发好的app也有开源的案例 rosjava GitHub https://github.com/ros-autom/RobotCA https://github.com/ROS-Mobile/ROS-Mobile-Android…

因果推断(一)合成控制法(SCM)

因果推断&#xff08;一&#xff09;合成控制法&#xff08;SCM&#xff09; 在互联网时代&#xff0c;产品迭代速度越来越快&#xff0c;营销活动也越来越多。分析师因此需要快速的量化每次迭代或每次营销的效果&#xff0c;探索改变与结果之间的因果关系&#xff0c;并将优秀…

idea如何解决导入的项目不是Maven工程(文件下面没有蓝色的方格)二

简介&#xff1a; Maven项目导入&#xff0c;idea不识别项目 解决方法&#xff1a; 选中pom.xml -- 右键 -- Add as Maven Project

使用Python搭建代理服务器- 爬虫代理服务器详细指南

搭建一个Python爬虫代理服务器可以让你更方便地管理和使用代理IP。下面是一个详细的教程来帮助你搭建一个简单的Python爬虫代理服务器&#xff1a; 1. 首先&#xff0c;确保你已经安装了Python。你可以在官方网站(https://www.python.org/)下载并安装最新版本的Python。 2. 安…

Spring 中简单存取 Bean 的相关注解

目录 前言存储 Bean 对象五大类注解方法注解&#xff08;Bean&#xff09; 获取 Bean 对象 (Autowired)属性注入多个同类型 Bean 注入怎么办&#xff1f; Setter 注入构造方法注入&#xff08;官方推荐&#xff09; 前言 之前我们存储获取 Bean 的操作很繁琐&#xff0c;需要将…

在职硕士|2023级中国社科院-美国杜兰大学合办双证能源管理硕士(MME)

金融硕士 在职硕士|2023级中国社科院-美国杜兰大学合办双证能源管理硕士&#xff08;MME&#xff09; 中国社会科学院大学与美国杜兰大学合作举办的能源管理专业硕士学位教育项目&#xff08;UCASS-Tulane Master of Management in Energy&#xff0c;简称MME&#xff09;于2…

《人工智能安全》课程总体结构

1 课程内容 人工智能安全观&#xff1a;人工智能安全问题、安全属性、技术体系等基本问题进行了归纳整理。人工智能安全的主要数据处理方法&#xff0c;即非平衡数据分类、噪声数据处理和小样本学习。人工智能技术赋能网络空间安全攻击与防御&#xff1a;三个典型实例及攻击图…

mybatis_配置之属性优化

概念 别名优化&#xff1a; 类型别名可为 Java 类型设置一个缩写名字。 它仅用于 XML 配置&#xff0c;意在降低冗余的全限定类名书写。例如&#xff1a; 在xml文件里为SQL映射文件中定义返回值类型的属性起个别名 之后直接使用User进行使用 核心配置文件&#xff1a; MyBa…

常见面试题分享1

一、对JVM的了解 1.1 什么是JVM&#xff1f; JVM&#xff08;Java Virtual Machine&#xff09;&#xff0c;俗称Java虚拟机。它是一个虚构出来的计算机&#xff0c;是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java语言的一个非常重要的特点就是与平台的无关性。…

商城体系之产商品系统

本文主要讲解商城体系下产商品系统的设计。商城系统可以拆分成多个业务中台和多个应用服务。 1、产商品系统业务架构 产商品系统作为商城重要的基础信息组成部分&#xff0c;主要划分为产品信息和商品信息&#xff0c;产品信息保持最原始的产品基础属性和内容&#xff0c;商品…

下拉框可筛选可树状多选组件

实际效果图片 父页面 <el-form-item label"转发&#xff1a;" :label-width"formLabelWidth" class"formflex_item"><el-select ref"select" :clearable"true" clear"clearSelect" remove-tag"r…

day2 驱动开发 c语言

通过驱动开发给pcb板子点灯。 u-boot已经提前移植到了emmc中。 灯也是一种字符型设备。 编程流程需要先注册设备&#xff0c;然后创建结点&#xff0c;然后操作电灯相关寄存器 应用层直接调用read write来打开字符设备进行操作。 这样写会造成无法处理内核页面请求的虚拟地址…

SpringBoot中java操作excel【EasyExcel】

EasyExcel 处理Excel&#xff1b;简单记录&#xff0c;方便日后查询&#xff01; 官方文档&#xff1a; Easy Excel (alibaba.com) 一、EasyExcel概述 Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存&#xff0c;poi有一套…

前端食堂技术周刊第 91 期:2023 npm 状态、TC39 会议回顾、浏览器中的 Sass、React 18 如何提高应用程序性能

美味值&#xff1a;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f; 口味&#xff1a;茶椰生花 食堂技术周刊仓库地址&#xff1a;https://github.com/Geekhyt/weekly 大家好&#xff0c;我是童欧巴。欢迎来到前端食堂技术周刊&#xff0c;我们先来看下…

js基础-练习三

九九乘法表&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthsc, initial-scale1.0"><title>九九乘法表</title><style&g…