嵌入式Linux Qt开发:2、Qt creator简单配置、Qt Designer使用以及信号槽机制使用
一、前言
Qt creator比较轻量,而且是Qt自带的IDE,基本可以开箱即用,个人使用起来感觉还是比较舒服的,并且其自带的FakeVim也可以做一些Vim的配置,其主界面可以简单配置显示很多的窗口,让开发更加顺畅。
Qt Designer在我第一次使用的时候就给我眼前一亮的感觉,虽然有的时候不够灵活,部分动态界面也无法实现,但是可以让大多数新手快速开发一个带界面的PC软件,因此我觉得这是一个对新手极度友好的工具,让新手一开始就去掌握和使用布局的一些抽象概念是比较难的,但Qt creator只需要拖好控件然后选择布局方式就自动完成了,相较于学习前端时候页面布局的一脸懵,UI设计师让我新手期做布局的时候用一次感叹一次。该工具也让开发效率得到了很大提升,这种方式也让界面开发和后台功能开发分的更清晰一些,一些后台网络、设备的交互接口和UI的展现样式完全可以分开去做,UI样式的调整和用户去对接调整,后台功能需求和设备以及云端对接调整,最后组合起来即可,这种模块化供应链组合的方式使得各个模块可以并行进行,从而提高产品开发效率。
信号槽机制我觉得让界面交互更加方便,开始的时候可能不太理解怎么用,但是用的多了之后就感觉真香,几乎是无处不在的,特别是异步操作也可以不用多线程方式而是一个信号槽就可以搞定。
二、Qt creator简单配置
新手期基本上安装好Qt就直接使用Qt creator了,没有做什么配置也用了很长时间,但在后面熟悉之后开始做了一些折腾。
1、FakeVim简单配置
- 目前我用的比较多的配置一个是FakeVim(个人在Linux下用的vim比较多),习惯了vim后很多IDE我都会去配置vim,当时发现Qt creator也支持vim还是不免激动一番的,并且支持设置Ctrl C等常用的Ctrl按键使用普通文本工具的而不使用vim的相关Ctrl按键,其它的一些宏操作还是用的vim的,搜索这些全局搜索也还是用的Qt creator的,这样不用记忆太多的vim命令,一些常用的普通编辑器的Ctrl命令也不需要改,使用起来顺畅很多(也可以使用自己的.vimrc,但是我个人嫌麻烦就没有改,感兴趣的可以自己试一下);
工具->选项->FakeVim->Use FakeVim;开启FakeVim使用。
注意:要选择Pass control keys,这样Ctrl相关的按键vim就不会用了,就可以正常使用Ctrl A,Ctrl C这些功能了
也可以快捷键切换开关FakeVim(这里也是一些快捷键,比如折叠、格式化、拷贝、剪切一行等):
2、Qt creator编辑页简单配置
- Qt creator界面布局可以在左右两侧的侧边栏展示项目、打开文件、大纲和类等内容,便于查看
三、Qt Designer使用
Qt Designer也叫UI设计师,我们比较常用的就是根据UI的设计图来搭出各个界面,修改各个界面的分辨率大小,放置设计的一些控件,控件的布局组合,控件的简单样式修改(包括字体大小颜色、背景颜色等的调整),简单的控件点击页面跳转等,可以将设计师的设计效果做基础的展示。
1、总体介绍
如下图,比较直观的可以看出来,在左侧可以根据你的需要将相关控件拖动到中间的界面,拖完控件后还可以进行简单的纵向、横向、网格、区域布局,控件和界面的对象属性都可以在右下角进行设置,一般是设置便于区分的控件名称,大小,使能等,界面下方的信号槽编辑和action编辑可以编辑信号槽和标题栏的按钮动作,但一般我会直接选择右键控件来生成信号槽,然后在cpp代码中写对应的槽函数,还有一种更清晰的方式则是直接在cpp代码的初始化中写connect将控价的信号槽关联起来,这样我们删除时也清晰一些。
2、布局简单介绍
布局也可以右键界面或者选中几个控件进行布局:
然后布局就完成了,非常简单,这是布局后的结果:
3、调整界面大小及界面布局
我们选中界面,然后调整界面的大小为200*200,然后再对界面做一个格姗布局:
之后编译一下看看显示效果:
基本上UI设计师的使用就这点,多个界面的话就创建多个,然后利用控件的信号槽将界面关联起来就可以了,如果你的界面没有根据网络数据动态生成及变化的话那么UI设计师完全满足你的设计需求,简单的复杂的界面都可以这样去做,一些自定义的控件也可以添加进来(或者通过cpp代码写出来控件后提升基础控件)。
四、信号槽机制简介及使用
Qt 的信号槽机制是其核心特性之一,用于实现对象之间的通信。它允许对象在某些事件发生时发送信号,而其他对象可以连接到这些信号以接收通知(通过槽)。
1、信号和槽的定义
- 信号:当对象的状态发生变化时发出的通知。信号不需要实现,只需在类中声明。
- 槽:响应信号的函数。槽可以是普通成员函数,也可以是静态函数。
2、信号和槽的语法
信号和槽的定义通常在类的头文件中:
class MyClass : public QObject {Q_OBJECT // 需要在使用信号和槽的类中添加此宏public:MyClass();signals: // 信号部分void mySignal(int value);public slots: // 槽部分void mySlot(int value);
};
3、连接信号和槽
使用 QObject::connect
函数将信号连接到槽:
MyClass *obj = new MyClass();
connect(obj, &MyClass::mySignal, obj, &MyClass::mySlot);
4、发出信号
可以在类的成员函数中发出信号:
void MyClass::someFunction() {emit mySignal(1); // 发出信号
}
5、信号和槽的工作机制
- 当发出信号时,所有连接到该信号的槽会被调用。
- 可以连接多个槽到同一个信号,所有槽会按照连接顺序被调用。
6、连接类型
QObject::connect
可以使用不同的连接类型:
Qt::DirectConnection
:在同一线程中直接调用槽。Qt::QueuedConnection
:在不同线程中将槽调用放入事件队列。Qt::AutoConnection
(默认):根据信号和槽所在的线程自动选择连接类型。
7、使用 Lambda 表达式
Qt 5 及以上版本支持使用 lambda 表达式作为槽:
connect(obj, &MyClass::mySignal, [=](int value) {// 处理信号
});
这种方式就不需要再单独创建一个槽函数去关联了,适合槽函数处理一些简单的功能,功能较复杂时这样可读性就比较差了,有的编译器可能会报错,需要改成这种形式:
connect(obj, &MyClass::mySignal, this, [=](int value) {// 处理信号
});
8、注意事项
- 记得在类中包含
Q_OBJECT
宏。 - 使用
emit
关键字发出信号,虽然不是必需的,但可以增加代码的可读性。
信号槽机制使得 Qt 应用程序的设计变得灵活和模块化,可以方便地处理事件和响应。
9、关联使用信号槽的三种方式
这里其实方法比较多,这里我知道的有三种:
9.1、设计师界面上直接添加信号槽
直接在设计师界面上添加信号槽并选择控件和信号槽,这种用的比较少,功能或者界面比较简单的时候可以这么做。
像这里我对两个按钮的clicked信号关联到Widget界面的close和setFocus槽函数。
这种要么选择控件已经有的的槽函数,要么需要先实现自定义的槽函数,然后再在这里做关联。
9.2、设计师界面上选择控件转到槽
一种直接在控件上右键转到槽选择信号并生成槽函数,然后直接实现槽函数的逻辑。
这种就是先在界面上选好了信号和控件,然后再转到槽函数来实现槽函数,比较好理解,但是不需要关联信号槽,后续要删除对应的信号槽关联不好找。
9.3、代码中自己创建槽函数并关联信号
还有一种就是像上面那样connect函数直接连接信号槽,槽函数名称和连接都在代码中自己写,但是也更方便后期维护,有哪些信号槽关联在cpp代码中都可以看到,像上面两种方式要删除一些信号槽关联会麻烦一些。
五、最后
接下来我们对各个控件的使用做一下总结,针对其常见的样式设置、信号、槽函数都大体了解一下,后续界面和功能设计出来后就可以知道使用哪些控件来做了,功能好不好实现,界面设计已有控件能否达到效果就心中有数了。
相关文章:
嵌入式Linux Qt开发:2、Qt creator简单配置、Qt Designer使用以及信号槽机制使用
一、前言 Qt creator比较轻量,而且是Qt自带的IDE,基本可以开箱即用,个人使用起来感觉还是比较舒服的,并且其自带的FakeVim也可以做一些Vim的配置,其主界面可以简单配置显示很多的窗口,让开发更加顺畅。 Q…...
【Vue 3 + Vue Router 4】如何正确重置路由实例(resetRouter)——避免“VueRouter is not defined”错误
在使用 Vue 3 和 Vue Router 4 开发中大型 SPA 应用时,我们经常会遇到需要动态添加或删除路由的场景。尤其是在权限控制和用户登出后重置路由的需求中,正确地实现 resetRouter 非常关键。 然而,许多开发者在迁移或初始化项目时,会…...
企业内部通讯,企业级即时通讯软件选择
企业内部的沟通往往涉及大量敏感信息,如商业机密、财务数据、客户信息等。BeeWorks IM即时通讯平台采用全私有化部署,企业可以将服务器部署在自己的数据中心或私有云环境中,确保所有数据的存储和传输都在企业可控的网络内完成。这种部署方式从…...
300. 最长递增子序列
理解最长递增子序列(LIS)是解决该问题的关键。子序列是从给定数组中按顺序选取的元素序列,例如数组 [1, 2, 3, 4, 5] 的子序列可以是 [2, 3, 4]。需要注意的是,子序列的元素在原数组中不一定是连续的。因此,最长递增子…...
MongoDB入门
1.MongoDB 基本概念详解 2.MongoDB 快速实战 3.MongoDB 核心操作与原理详解 Mongo 是 humongous 的中间部分,在英文里是“巨大无比”的意思。所以 MongoDB 可以翻译 成“巨大无比的数据库”,更优雅的叫法是“海量数据库”。Mongodb是一款非关系型数据库…...
MySQL基础原理
目录 一、MySQL架构 1、四层架构 2、MySQL运行机制 二、MySQL存储引擎 1、不同存储引擎对比 2、InnoDB存储结构 2.1 内存结构 2.2 磁盘结构 3、日志先行策略 3.1 核心思想 3.2 关键组件与流程 3.3 数据安全保证 3.3.1 崩溃恢复 3.3.2 持久性保障 一、MySQL架构 …...
Python刷题练习
文章目录 1.寻找相同字串2.密钥格式化3.五键键盘的输出4.单词重量5.输出指定字母在字符串的中的索引6.污染水域7.九宫格按键输入8.任务最优调度9.高效的任务规划 1.寻找相同字串 题目描述: 给你两个字符串t和p,要求从t中找到一个和p相同的连续子串,并输…...
基于GPUGEEK 平台进行深度学习
一、平台简介 GPUGEEK 是一个专注于提供 GPU 算力租赁服务的平台,在人工智能与深度学习领域为用户搭建起便捷的算力桥梁。它整合了丰富多样的 GPU 资源,涵盖 RTX - 4090、RTX - 3090、A100 - PCIE 等多种型号,满足不同用户在模型训练、数据处…...
基于Matlab的非线性Newmark法用于计算结构动力响应
基于Matlab的非线性Newmark法用于计算结构动力响应,主要针对材料非线性或几何非线性问题。 1. Newmark法基本原理 Newmark法是一种隐式时间积分方法,通过预估-校正步骤更新位移、速度和加速度: 预测步: un1unΔtvn…...
Oracle — PL-SQL
介绍 Oracle PL/SQL是专为Oracle数据库设计的过程化编程语言,深度融合SQL语句与结构化编程逻辑,旨在高效处理复杂数据操作与业务规则。其核心特征为“块结构”,程序由声明、执行、异常处理三部分组成,支持模块化开发,显…...
第七节第二部分:接口的综合案例
案例分析 代码: Student类 package com.Interface_Demo;public class Student {private String name;private char sex;private double score;public Student() {}public Student(String name, char sex, double score) {this.name name;this.sex sex;this.scor…...
【AI古风美学渲染】:淡雅光影中的细腻呈现
“顶作AI”作为国内首个深度融合中文语义的生成式AI平台,以近百亿级参数的Lens跨模态模型为核心,开创了“自然语言即生产力”的创作模式。该平台突破传统工具对专业术语的依赖,用户仅需输入如“水墨风格的山间庭院,晨雾中若隐若现…...
JVM学习专题(二)内存模型深度剖析
目录 1.JVM结构体系 编辑 2.跨平台特性 3.JVM整体结构及内存模型 1.栈内存 1、栈帧: 1.局部变量表 2.操作数栈 3.动态链接 4.方法出口 2、创建对象 2.程序计数器: 3.方法区 4.堆 5.本地方法区 6.总结 1.JVM结构体系 JDK、JRE 和 JVM…...
Prometheus 的介绍与部署(入门)
一、什么是Prometheus; 1.介绍 Prometheus 是一个功能强大的监控工具,适用于各种环境。通过简单的安装和配置,可以快速实现对系统和服务的监控。无论是单机环境、容器化环境还是 Kubernetes 集群,Prometheus 都能提供灵活…...
JavaSwing之-JDialog
JavaSwing之-JDialog JDialog 是 Java Swing 中用于创建对话框窗口的容器类,继承自 Dialog 类(AWT),常用于显示临时信息、获取用户输入或执行模态操作。它是 javax.swing.JDialog 包中的类。 与 JFrame 不同的是,JDia…...
配置Nginx解决http host头攻击漏洞【详细步骤】
前言 大概内容: 安全系统渗透测试出host头攻击漏洞,下面是解决步骤,本人已测过无问题。 server_name aaabbb.com; if ($http_Host !~* ^127.0.0.1|aaabbb.com|localhost$){return 403;}...
如何用Redis实现分布式锁?RedLock算法的核心思想?Redisson的看门狗机制原理?
一、Redis分布式锁基础实现 public class RedisDistributedLock {private JedisPool jedisPool;private String lockKey;private String clientId;private int expireTime 30; // 默认30秒public boolean tryLock() {try (Jedis jedis jedisPool.getResource()) {// NX表示不…...
LeetCode 热题 100 35.搜索插入位置
目录 题目: 题目描述: 题目链接: 思路: 核心思路: 思路详解: 代码: Java代码: 题目: 题目描述: 题目链接: 35. 搜索插入位置 - 力扣&…...
电流检测放大器的优质选择XBLW-INA180/INA181
前言: 在当前复杂的国际贸易环境下,关税的增加使得电子元器件的采购成本不断攀升,电子制造企业面临着巨大的成本压力。为了有效应对这一挑战,实现国产化替代已成为众多企业降低生产成本、保障供应链稳定的关键战略。对此芯伯乐推出…...
序列化和反序列化:从理论到实践的全方位指南
你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益: 了解大厂经验拥有和大厂相匹配的技术等 希望看什么,评论或者私信告诉我! 文章目录 一…...
Leetcode (力扣)做题记录 hot100(62,64,287,108)
力扣第62题:不同路径 62. 不同路径 - 力扣(LeetCode) class Solution {public int uniquePaths(int m, int n) {int[][] array new int[m][n];for(int i 0;i<n;i){array[0][i] 1;}for(int i 0;i<m;i){array[i][0] 1;}for(int i …...
【Linux】shell内置命令fg,bg和jobs
Shell 内置命令 fg(foreground 的缩写)。它用于将后台挂起的任务恢复到前台运行。 例如: 假设你运行了一个耗时的 SVN 操作(如 svn update 或 svn checkout)。按下 CtrlZ 将该进程挂起到后台。输入 fg…...
鸿蒙OSUniApp 制作动态加载的瀑布流布局#三方框架 #Uniapp
使用 UniApp 制作动态加载的瀑布流布局 前言 最近在开发一个小程序项目时,遇到了需要实现瀑布流布局的需求。众所周知,瀑布流布局在展示不规则尺寸内容(如图片、商品卡片等)时非常美观和实用。但在实际开发过程中,我…...
通用软件项目技术报告 - 导读II
现在,我们正式进入报告的第三个主要领域:3. 领域三:核心业务逻辑与算法实现。 连接: 我们已经讨论了如何存储数据(领域一)和如何设计 API 让外部或内部服务可以访问这些数据或触发操作(领域二)。现在,我们将深入应用程序的“心脏”——实际执行业务规则、进行计算和(…...
新能源汽车三电质量护盾:蓝光三维扫描技术显身手
在绿色低碳的潮流下,新能源汽车行业快速发展,车企们纷纷加速电气化转型。由于电动汽车动力系统构造与内燃机车辆的构造有很大不同,制造商及其供应商必须加快工程研发设计及生产,而这对质量保证过程提出了新的挑战。 对于新能源汽…...
针对已训练好的YOLOv8模型的优化策略
以下是针对已训练好的YOLOv8模型的优化策略,结合模型微调、结构改进、训练策略调整等方法,可进一步提升检测性能或适应特定场景需求: 一、超参数调优 学习率动态调整 初始学习率(lr0):若模型收敛后仍有优化…...
AI 产业化浪潮:从生成智能到星载计算,中国如何重塑全球竞争格局
2025 年的科技版图上,人工智能正经历着从技术奇点到产业爆点的历史性跨越。当生成式 AI 突破实验室围墙走进千行百业,当智能体开始在数字世界自主决策,当卫星搭载的大模型在太空展开计算,一场由技术创新驱动的产业革命正在重塑全球…...
Python如何解决中文乱码
Python文件头部声明 # -*- coding: utf-8 -*- # 必须放在文件第一行或第二行中文字符串定义方式 # Python 3 chinese_str "中文" # 默认就是Unicode# Python 2 chinese_str u"中文" # 必须加u前缀字符串编码转换黄金法则 # 解码:字节串 …...
android studio导入项目
如果 gradle-8.0-bin.zip 没有下载成功 可以点击进入这个网站:https://services.gradle.org/distributions/ 找到和自己本版相同的gradle-8.0-bin.zip文件找到自己版本进行下载; 如果下载依赖失败, 可以手动下载依赖编译过程中的jar https://repo.maven.apache.org/…...
Android Studio Meerkat与Gradle构建工具升级实战指南
简介 Android Studio Meerkat和Gradle构建工具的升级将带来显著的性能提升和开发体验优化。在Android生态快速演进的2025年,开发者亟需掌握这些新特性以提升工作效率。本指南将从零开始,详细讲解如何升级Android Studio和Gradle构建工具,配置新特性,并提供实际应用场景的代…...
TCP/IP参考模型详解:从理论架构到实战应用
一、参考模型基础概念与分类 计算机网络参考模型是为解决网络通信标准化问题而设计的逻辑框架。在众多模型中,TCP/IP参考模型以其高实用性和广泛应用,成为现代网络架构的基石。该模型采用分层设计思想,将复杂的网络通信功能划分为多个层次&am…...
【Linux网络】网络层
网络层 在复杂的网络环境中确定一个合适的路径 IP 协议 IPV4 点分十进制[0,255].[0,255].[0,255].[0,255]IPV6 IP地址目标网格目标主机 基本概念 主机:配有IP地址,但是不进行路由控制的设备;路由器:即配有IP地址,又能进行路由控制;节点:主机和路由器的统称。 两个问题 路…...
FastAPI + OpenAI 模型 的 GitHub 项目结构模板
FastAPI OpenAI 模型 的 GitHub 项目结构模板,适合用作大模型(如 GPT-4) API 服务的基础框架。该模板包括了基本的项目结构、配置、文档以及与 OpenAI API 的交互方式。 项目结构 fastapi-openai-api/ ├── app/ │ ├── __init__.p…...
基于EFISH-SCB-RK3576/SAIL-RK3576的无人快递柜控制器技术方案
国产化替代J1900的智能化升级方案 一、硬件架构设计 多模态感知模块 智能识别单元: 双MIPI-CSI接口接入4K摄像头,NPU加速包裹条码识别(速度>5件/秒,准确率>99.99%),支持破损检测&…...
Centos 上安装Klish(clish)的编译和测试总结
1,介绍 clish是一个类思科命令行补全与执行程序,它可以帮助程序员在nix操作系统上实现功能导引、命令补全、命令执行的程序。支持?,help, Tab按键。本文基于klish-2.2.0介绍编译和测试。 2,klish的编译 需要安装的库&…...
Android学习总结之Glide自定义三级缓存(面试篇)
一、三级缓存核心原理与设计 问题 1:为什么需要三级缓存?各层缓存的核心作用是什么? 回答核心 内存缓存:毫秒级快速响应,存储近期浏览的图片(如滑动列表来回切换的图片),通过 LRU…...
管理Oracle Data Guard的最佳实践
Oracle Data Guard的中文名字叫数据卫士,顾名思义,它是生产库的一道保障。所以管理Data Guard是DBA的一项重要工作之一,管理Data Guard时主要有以下几个注意点需要引起重视。 备份库的归档日志积压 一般情况下,生产库的归档日志是…...
iOS WebView和WKWebView怎么调试?
iOS WebView调试 本教程将指导您如何使用WebDebugX调试iOS应用中的WebView内容,包括WKWebView和UIWebView。通过本教程,您将学习如何检查WebView中的HTML、CSS和JavaScript,以及如何解决常见的WebView调试问题。 准备工作 在开始调试iOS W…...
笔记本电脑打开网页很慢,一查ip地址网段不对怎么处理
我有一个笔记本,在家里连WIFI后获取到的ip地址网段不对,那么常规做法是手动去配置个静态IP和DNS,要知道笔记本IP地址默认采用的是DHCP,也就是动态获取ip地址。如果手动设置静态IP,也就是固定IP的话,你换个场…...
【更新】全国省市县-公开手机基站数据集(2006-2025.3)
手机基站是现代通信网络中的重要组成部分,它们为广泛的通信服务提供基础设施。随着数字化进程的不断推进,手机基站的建设与布局对优化网络质量和提升通信服务水平起着至关重要的作用,本分享数据可帮助分析移动通信网络的发展和优化。本次数据…...
iOS视频编码详细步骤(视频编码器,基于 VideoToolbox,支持硬件编码 H264/H265)
iOS视频编码详细步骤流程 1. 视频采集阶段 视频采集所使用的代码和之前的相同,所以不再过多进行赘述 初始化配置: 通过VideoCaptureConfig设置分辨率1920x1080、帧率30fps、像素格式kCVPixelFormatType_420YpCbCr8BiPlanarFullRange设置摄像头位置&am…...
行项目违反范围截止值
把允许负值打钩就可以,如果没有此字段,按照下面截图把屏幕格式放字段出来;字段放出来以后如果是灰色的话,就用SE16N调试模式修改字段值;...
Linux wlan 单频段 dual wifi创建
环境基础 TP LINK WN722N V1网卡linux 主机 查看设备是否支持双ap managed:客户端模式(连接路由器/AP)AP:接入点模式(创建热点)AP/VLAN:支持带VLAN标签的虚拟AP{ AP, mesh point, P2P-GO } &l…...
STC32G12K12实战:串口通信
STC32G12K128芯片写一个按键通过串口1发送字符串的程序。首先,确认芯片的串口1配置。STC32G系列通常使用UART1,相关的寄存器是P_SW1来选择引脚。默认情况下,UART1的TX是P3.1。 接下来是设置定时器作为波特率发生器。通常用定时器2,…...
unity 鼠标更换指定图标
1.准备两张图 要求图片导入设置如下 将 Texture Type 改为 Cursor 确保 Read/Write Enabled 已勾选 取消勾选 Generate Mip Maps 将 Filter Mode 设为 Point (保持清晰边缘) 将 Compression 设为 None (无压缩) 2.创建脚本,把脚本挂到场景中 ,该…...
会话管理中的cookie,以及浏览器操作cookie,在express中设置,删除,和获取cookie
会话管理中的 Cookie以及在浏览器和 Express 中操作 Cookie: 🍪 一、Cookie 在会话管理中的作用 ✅ Cookie 的定义: Cookie 是服务器发送到浏览器并保存在本地的小段文本数据,浏览器会在之后的请求中将这些数据回传给服务器。 …...
Mac的web服务器
最近用了个人觉得比较好用的集成环境。Flyenv - FlyEnv | 一体化全栈环境管理工具. 支持macOS / Windows / Linux 链接放在这了。 mac上安装: brew install flyenv 等着安装成功就好了 给个图。ollama也有...
数据可视化大屏——南方草牧商品交易所
代码综述 整体结构与用途 这是一段用于构建网页的 HTML 代码,结合引入的 JavaScript 和 CSS 文件,初步推测该网页是南方草牧商品交易所的相关页面,主要展示了与草牧商品交易相关的各类数据,包括产品挂牌数、成交量、会员信息等&…...
AIGC与数字媒体实验室解决方案分享
第1部分 概述 1.1 建设目标 1.深度融合AIGC技术,培养能够驾驭新质生产力的数字媒体人才 通过引入前沿的AIGC技术,确保学生能够接触到最先进的人工智能应用。教学内容理论和实践结合,让学生在实际操作中熟练掌握AIGC工具,生成高…...
Qwen3模型架构、训练方法梳理
qwen3炼丹真是全是技巧,下面来看看,仅供参考。 https://huggingface.co/Qwen https://modelscope.cn/organization/qwen https://github.com/QwenLM/Qwen3 模型架构 Dense 模型结构改进: GQA、SwiGLU、RoPE、RMSNorm with pre-normalization…...