Qt - macOS 安装配置

文章目录

    • 一、关于 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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

83%的企业曾遭受固件攻击,仅29%分配了固件防护预算

近日&#xff0c;微软发布了名为[《Security Signals》的研究报告](https://www.microsoft.com/secured- corepc/assets/downloads/SecuritySignals_ThoughtPaper.pdf)。报告显示&#xff0c; 过去两年中&#xff0c;83&#xff05;的组织至少遭受了一次固件攻击&#xff0c;而…

第五讲:MySQL中DDL表的修改与删除

1、alter&#xff1a;改变 2、table&#xff1a;表 3、truncate&#xff1a;截断&#xff0c;删节 学习渠道&#xff1a;黑马程序员

excel中的vlookup如何实现根据多个条件查找?

目录 简述问题公式思路通用公式三条件查找公式实例 简述 Excel 中根据一个条件查找非常方便&#xff0c;Excel 提供了内置函数 VLOOKUP。但是实际中往往有多种情形&#xff0c;需要根据多个条件进行查找操作&#xff0c;目前没有现成的内置函数。 本篇介绍 VLOOKPCHOOSE 组合…

利用RLHF优化大模型:提升性能与应用能力

在数据科学不断发展的过程中&#xff0c;大模型在自然语言处理、图像识别、金融预测等各个领域的应用越来越广泛。然而&#xff0c;大模型的训练和优化也面临着越来越多的挑战&#xff0c;例如数据量过大、计算资源不足、超参数调整困难等。传统的机器学习算法往往难以处理这些…

基于whisper和whisperx的语音视频和字幕对齐

环境的安装 创建py310虚拟环境,需要安装Anaconda的Python环境。 Python初学者在不同系统上安装Python的保姆级指引 Win10+Python3.9+GPU版pytorch环境搭建最简流程 Python虚拟环境的安装和使用 还需要提前安装FFmpeg用于音频操作,并添加到环境变量中。 创建一个名称为w…

Kotlin~Proxy代理模式

概念 又称委托模式&#xff0c;充当中介代理的类。 特点&#xff1a;让一个对象控制另一个对象的访问&#xff0c;让代理充当其他事物的接口。 角色介绍 抽象目标类具体目标类代理类 UML 代码实现 按实现分为静态和动态代理 interface PhoneSell {fun sell() }class Main…

4K/8K AI巡检详解:风电巡检领域主动出击的监控厂商

最近&#xff0c;“北方高温”、“厄尔尼诺大烤”等词条频上热搜的背后&#xff0c;为应对气候变化挑战&#xff0c;全球正迎来一场波澜壮阔的绿色低碳转型浪潮。 而在“碳达峰、碳中和”政策背景下&#xff0c;风电行业肩负着重要的责任与使命。根据《中国可再生能源发展报告…

【JavaEE】基于Servlet与MySQL实现一个简易网站

目录 前言 一、实现表白墙的前期准备工作 1、约定前后端交互的接口 1.1、接口一&#xff1a;页面获取当前所有的留言消息 1.2、接口二&#xff1a;提交新消息给服务器 二、前端和后端代码的实现 1、数据的永久化保存 2、小结 前言 之前小编在写前端页面的时候&#x…

SkyWalking链路追踪中span全解

基本概念 在SkyWalking链路追踪中&#xff0c;Span&#xff08;跨度&#xff09;是Trace&#xff08;追踪&#xff09;的组成部分之一。Span代表一次调用或操作的单个组件&#xff0c;可以是一个方法调用、一个HTTP请求或者其他类型的操作。 每个Span都包含了一些关键的信息&am…

1.前端入门

文章目录 一、基础认知1.1 认识网页&#xff1a;1.2 五大浏览器1.3 Web标准 总结 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、基础认知 1.1 认识网页&#xff1a; 1.网页由哪些部分组成&#xff1f; 文字、图片、音频、视频、超链接。 2.我们…

(五)FLUX中的数据类型

以下内容来自 尚硅谷&#xff0c;写这一系列的文章&#xff0c;主要是为了方便后续自己的查看&#xff0c;不用带着个PDF找来找去的&#xff0c;太麻烦&#xff01; 第 5 章 FLUX中的数据类型 5.1 10 个基本数据类型 5.1.1 Boolean &#xff08;布尔型&#xff09; 5.1.1.1 …

sql进阶 之case表达式

case表达式 CASE表达式是SQL里非常重要而且使用起来非常便利的技术&#xff0c;我们应该学会用它来描述条件分支。本节将通过行列转换、已有数据重分组&#xff08;分类&#xff09;、与约束的结合使用、针对聚合结果的条件分支等例题&#xff0c;来介绍CASE表达式的用法。标红…

JAVA设计模式——23种设计模式详解

一、什么是设计模式&#x1f349; 设计模式&#xff08;Design pattern&#xff09; 是解决软件开发某些特定问题而提出的一些解决方案也可以理解成解决问题的一些思路。通过设计模式可以帮助我们增强代码的可重用性、可扩充性、 可维护性、灵活性好。我们使用设计模式最终的目…

MATLAB与ROS联合仿真——ROS环境搭建及相关准备工作(上)

本篇文章主要介绍在安装完ROS后&#xff0c;在进行MATLAB与ROS联合仿真之前&#xff0c;需要进行的一些环境搭建以及准备工作&#xff0c;主要分为 创建ROS工作空间及功能包、必备功能包安装、安装Gazebo11、导入实验功能包至工作空间、安装Visual_Studio_Code(选做)、常用便捷…

mac端数据库管理 Navicat Premium 15 for Mac v15.0.36

Navicat Premium 15是一款功能强大的数据库管理工具&#xff0c;由PremiumSoft CyberTech Ltd.开发。它提供了一个集成的界面&#xff0c;用于连接和管理多种不同类型的数据库&#xff0c;如MySQL、Oracle、SQL Server、PostgreSQL等。 Navicat Premium 15具有直观和用户友好的…

NFT和数字藏品的安全方案解析

一、NFT和数字藏品 01 NFT是什么&#xff1f; NFT 是Non-Fungible Tokens 的缩写&#xff0c;意思是不可互换的代币&#xff0c;它是相对于可互换的代币而言的。不可互换的代币也称为非同质代币。什么是可互换的代币&#xff1f;比如BTC&#xff08;比特币&#xff09;、ETH&…

SDN系统方法 | 5. 交换机操作系统

随着互联网和数据中心流量的爆炸式增长&#xff0c;SDN已经逐步取代静态路由交换设备成为构建网络的主流方式&#xff0c;本系列是免费电子书《Software-Defined Networks: A Systems Approach》的中文版&#xff0c;完整介绍了SDN的概念、原理、架构和实现方式。原文: Softwar…

react native 本地存储 AsyncStorage

An asynchronous, unencrypted, persistent, key-value storage system for React Native. Async Storage 只能用来储存字符串数据&#xff0c;所以为了去储存object类型的数据&#xff0c;得先进行序列化&#xff08;JSON.stringify()&#xff09;当你想要使用数据的时候&…

低代码:“提效降本”是如何炼成的

人们向往着从前车马慢的生活&#xff0c;可对于工厂而言&#xff0c;慢节奏如同噩梦。 目录 01、低代码的到来 02、让开发提效降本 03、结束语 在没有数字化以前的制造业&#xff0c;多个厂区之间的信息传递&#xff0c;例如采购单或者审批单&#xff0c;要用货车拉&#xff0c…

Keepalived热备、Keepalived+LVS、HAProxy监控及后端服务器健康检查、负载均衡调度器对比

day02 day02KeepAlived高可用集群配置高可用的web集群监控本机80端口&#xff0c;实现主备切换实现原理实施配置高可用、负载均衡的web集群配置高可用、负载均衡HAProxy配置haproxy负载均衡调度器比较LVS&#xff08;Linux Virtual Server&#xff09;NginxHAProxy KeepAlive…