Pyside6 + QML - 從官方的例程開始

導言


在這里插入圖片描述
如上所示,登上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 …