导言


在这里插入图片描述
如上所示,登上Qt Pyside6的官方网址:https://doc.qt.io/qtforpython-6/index.html,点击“Write your first Qt application”的"Start here!"按钮。

效果:
在这里插入图片描述
工程代码:

  • github:https://github.com/q164129345/myPyside6_QML/tree/main/basic01_main_window
  • gitee:https://gitee.com/wallace89/myPyside6_QML/tree/main/basic01_main_window

一、我的第一个Qt Quick程序(Pyside6)


在这里插入图片描述

1.1、项目结构

basic01_main_window/
│
├── main.py   
│
└── Example/├── Main.qml  # 界面定义└── qmldir    # 模块描述文件

在这里插入图片描述

1.2、Example模块

basic01_main_window/
│
├── main.py   
│
└── Example/├── Main.qml   # 界面定义└── qmldir.txt # 模块描述文件

Examlpe模块(实际是文件夹)里一共有两个文件Main.py与qmldir.txt。

注意:QML代码文件的命名一定要用大写字母开头。

Main.qml

// 导入Qt Quick模块,提供基础的QML组件
import QtQuick
// 导入Qt Quick Controls模块,提供按钮等控件
import QtQuick.Controls
// 导入Qt Quick Layouts模块,提供布局管理
import QtQuick.Layouts// 定义一个窗口组件
Window {width: 300      // 窗口宽度height: 200     // 窗口高度visible: true   // 窗口可见性title: "Hello World"  // 窗口标题// 定义一个只读属性,包含不同语言的问候语列表readonly property list<string> texts: ["Hallo Welt", "Hei maailma","Hola Mundo", "Привет мир"]// 定义一个函数,用于随机设置文本function setText() {// 生成0-3之间的随机整数var i = Math.round(Math.random() * 3)// 将随机选择的文本赋值给text组件text.text = texts[i]}// 使用列布局管理器,垂直排列子组件ColumnLayout {anchors.fill:  parent  // 填充父组件的整个区域// 文本组件,显示问候语Text {id: text  // 组件ID,用于在其他地方引用text: "Hello World"  // 默认显示的文本Layout.alignment: Qt.AlignHCenter  // 在布局中水平居中对齐}// 按钮组件Button {text: "Click me"  // 按钮上显示的文字Layout.alignment: Qt.AlignHCenter  // 在布局中水平居中对齐onClicked:  setText()  // 点击事件处理:调用setText函数}}
}

qmldir.txt

module Example
Main 254.0 Main.qml

1.3、main.py

# python3.10.11 - PySide6==6.9
import sys
from PySide6.QtGui import QGuiApplication
from PySide6.QtQml import QQmlApplicationEngineif __name__ == "__main__":app = QGuiApplication(sys.argv)engine = QQmlApplicationEngine()engine.addImportPath(sys.path[0])  # 当前项目路径engine.loadFromModule("Example", "Main")  # 模块(Example) + QML文件名(Main.qml)if not engine.rootObjects():sys.exit(-1)sys.exit(app.exec())del enginesys.exit(exit_code)

二、细节补充


2.1、qmldir.txt是什么?

比喻
qmldir 文件就像一本“目录索引”。想象一下你去图书馆借书,书放在书架上,但你必须先看“目录卡片”,才知道“哪本书在哪一层书架”。在 QML 里,qmldir 就是这张目录卡片——它告诉 QML 引擎,这个文件夹是一个 QML 模块,它里面有哪些组件、版本是多少、对应的 QML 文件叫什么。

正式定义
qmldir 是一个 纯文本文件,名字必须叫 qmldir。它通常放在一个文件夹里,这个文件夹就会变成一个 QML 模块。内容里列出:

  • 模块名称(module)
  • 组件名称(比如 Main)
  • 组件版本号(比如 1.0 或 254.0)
  • 组件对应的文件(比如 Main.qml)

本次例子的内容

module Example
Main 254.0 Main.qml

解释:

  • module Example:这个文件夹(Example)是一个模块,名字叫 Example。
  • Main 254.0 Main.qml:模块里有个组件叫 Main,版本是 254.0,它的实现文件就是 Main.qml。

为什么需要它?
因为在 Python 里我们写了:

engine.loadFromModule("Example", "Main")

这里的 “Example” 和 “Main” 就是去找 Example 目录下的 qmldir 文件 → 然后 qmldir 再告诉引擎:
“Main 组件 = Main.qml 文件”。这样 QML 引擎才知道去哪加载界面。

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python爬虫实战:研究Pandas,构建物联网数据采集和分析系统

1. 引言 1.1 研究背景 物联网(Internet of Things, IoT)作为新一代信息技术的重要组成部分,已广泛应用于智能交通、环境监测、智慧家居等多个领域。据 Gartner 预测,到 2025 年全球物联网设备数量将达到 750 亿台,产生的数据量将突破 zettabyte 级别。物联网平台作为数据…

深度学习入门基石:线性回归与 Softmax 回归精讲

一、线性回归&#xff1a;从房价预测看懂 “连续值预测” 逻辑 线性回归是深度学习的 “敲门砖”&#xff0c;它的核心思想是用线性关系拟合数据规律&#xff0c;解决连续值预测问题—— 比如根据房屋特征估算房价、根据温度湿度预测降雨量等。 1. 从生活案例到数学模型 拿房价…

GPT-5-Codex CLI保姆级教程:获取API Key配置与openai codex安装详解

朋友们&#xff0c;就在 2025 年 9 月中旬&#xff0c;OpenAI 悄悄扔下了一颗重磅炸弹&#xff1a;GPT-5-Codex。 如果你以为这只是又一次平平无奇的模型升级&#xff0c;那可就大错特错了。 我可以这么说&#xff1a;软件开发的游戏规则&#xff0c;从这一刻起&#xff0c;可能…

基于Spark的用户实时分析

Spark的最简安装 1. 下载并解压 Spark 首先,我们需要下载 Spark 安装包。您可以选择以下方式之一: 方式一:从官网下载(推荐) # 在 hadoop01 节点上执行 cd /home/hadoop/app wget https://archive.apache.org/dist/spark/spark-2.3.1/spark-2.3.1-bin-hadoop2.7.tgz方…

OpenCV 风格迁移、DNN模块 案例解析及实现

图像风格迁移是计算机视觉领域极具趣味性的技术之一 —— 它能将普通照片&#xff08;内容图像&#xff09;与艺术画作&#xff08;风格图像&#xff09;的特征融合&#xff0c;生成兼具 “内容轮廓” 与 “艺术风格” 的新图像。OpenCV 的 DNN&#xff08;深度神经网络&#x…

MySQL 日志:undo log、redo log、binlog以及MVCC的介绍

一、MySQL 日志&#xff1a;undo log、redo log、binlogundo log&#xff08;回滚日志&#xff09;&#xff1a;是 Innodb 存储引擎层生成的日志&#xff0c;实现了事务中的原子性&#xff0c;主要用于事务回滚和 MVCC&#xff08;隔离性&#xff09;。 redo log&#xff08;重…

【面板数据】省及地级市农业新质生产力数据集(2002-2025年)

农业新质生产力是以科技创新为核心驱动力&#xff0c;以科技化、数字化、网络化和智能化为主线&#xff0c;通过技术革命性突破、生产要素创新性配置、产业深度转型升级&#xff0c;实现农业全要素生产率显著跃升的先进生产力形态 本数据基于2002-2025年各省政府工作报告中关于…

20250917在荣品RD-RK3588-MID开发板的Android13系统下使用tinyplay播放wav格式的音频

input keyevent 24 1|console:/sdcard # cat /proc/asound/cards console:/sdcard # ls -l /dev/snd/【需要打开Android13内置的音乐应用才会有声音出来&#xff0c;原因未知&#xff01;】 1|console:/sdcard # tinyplay /sdcard/Music/kiss8.wav -D 1 -d 020250917在荣品RD-R…

总共分为几种IP

IP&#xff08;Internet Protocol&#xff09;地址根据不同的分类标准可分为多种类型&#xff0c;以下是常见的分类方式&#xff1a;按版本分类IPv4&#xff1a;32位地址&#xff0c;格式为四组十进制数字&#xff08;如192.168.1.1&#xff09;&#xff0c;约43亿个地址&#…

【Linux】常用命令(六)

【Linux】常用命令&#xff08;六&#xff09;1. yum命令1.1 基本语法1.2 常用命令2. 从服务器把数据cp到本地3. uname命令3.1 常用命令1. yum命令 全称&#xff1a;Yellowdog Updater, Modified作用&#xff1a;是 RPM 包管理器的前端工具&#xff0c;用于基于 RPM 的 Linux …

go grpc开发使用

1、安装proto 下载 Windows 版本 打开官方发布页面 访问 Protocol Buffers 的 GitHub Releases 页面&#xff1a; &#x1f449; https://github.com/protocolbuffers/protobuf/releases 解压 ZIP 文件 将下载的 ZIP 文件解压到一个你容易找到的目录&#xff0c;例如&#xff1…

MyBatis分页:PageHelper

MyBatis分页&#xff1a;PageHelper &#x1f4d6; 前言&#xff1a;为什么需要分页&#xff1f; 在处理大量数据时&#xff0c;一次性从数据库查询并返回所有结果是不可行的&#xff0c;这会带来巨大的性能和内存开销。分页是解决这一问题的标准方案。而PageHelper是一个极其流…

Gin框架:构建高性能Go Web应用

Gin框架&#xff1a;构建高性能Go Web应用 Gin是Go语言中最受欢迎的Web框架之一&#xff0c;以其高性能、简洁API和丰富的中间件支持而闻名。本文将带你从零开始&#xff0c;逐步掌握Gin框架的核心概念和高级特性&#xff0c;并通过实际代码示例演示如何构建高效的Web应用程序。…

IO进程——线程、IO模型

一、线程Thread1、引入1.1 概念相当于是一个轻量级的进程&#xff0c;为了提高系统的性能引入线程&#xff0c;在同一进程中可以创建多个线程&#xff0c;共享进程资源1.2 进程和线程比较相同点&#xff1a;都为操作系统提供了并发执行的能力不同点&#xff1a;调度和资源&…

人工智能概念:NLP任务的评估指标(BLEU、ROUGE、PPL、BERTScore、RAGAS)

文章目录一、评估指标基础1. 准确率&#xff08;Accuracy&#xff09;2. 精确率&#xff08;Precision&#xff09;3. 召回率&#xff08;Recall&#xff09;4. F1-Score5. 示例二、文本生成专用指标1. BLEU&#xff1a;机器翻译与标准化文案的“质量标尺”1.1 计算流程&#x…

团队对 DevOps 理解不统一会带来哪些问题

团队对DevOps理念与实践的理解不统一、片面甚至扭曲&#xff0c;是导致众多企业DevOps转型失败的根本原因&#xff0c;它将直接引发一系列深层次的、相互关联的严重问题。核心体现在&#xff1a;转型极易沦为“为了工具而工具”的盲目自动化&#xff0c;导致最核心的文化变革被…

企业级实战:构建基于Qt、C++与YOLOv8的模块化工业视觉检测系统(基于QWidget)

目录一、概述二、项目目标与技术架构2.1 核心目标2.2 技术选型2.3 软件架构三、AI推理DLL的开发 (Visual Studio 2019)3.1 定义DLL接口 (DetectorAPI.h)3.2 实现核心功能 (DetectorAPI.cpp)四、Qt Widget GUI应用程序的开发4.1 项目配置 (.pro 文件)4.2 UI设计 (mainwindow.ui)…

SVN自动化部署工具 脚本

SVN自动化部署工具 功能概述 这是一个自动化部署SVN仓库的bash脚本&#xff0c;主要功能包括&#xff1a; 自动安装SVN服务&#xff08;如未安装&#xff09; 创建SVN项目仓库 配置多用户权限 设置自动同步到网站目录 提供初始检出功能 下载地址 https://url07.ctfile…

Facebook主页变现功能被封?跨境玩家该如何申诉和预防

不少跨境玩家在运营Facebook公共主页时&#xff0c;最期待的就是通过变现工具获得稳定收入。但现实中&#xff0c;经常会遇到一个扎心的问题&#xff1a;主页好不容易做起来&#xff0c;却突然收到提示——“你的变现功能已被停用”。这意味着收入中断&#xff0c;甚至可能导致…

安装es、kibana、logstash

下载 elk 下载地址 elasticsearch地址: https://www.elastic.co/cn/downloads/elasticsearch kibana地址: https://www.elastic.co/cn/downloads/kibana logstash地址: https://www.elastic.co/cn/downloads/logstash 解压elk 创建es全家桶文件夹 cd /usr/local mkdir elk …