Files
Obsidian-Main/03. 資料收集/01. Programming/QT/QVariant.md
Awin Huang 0a8e11189d vault backup: 2022-09-26 18:49:43
Affected files:
.obsidian/daily-notes.json
.obsidian/plugins/periodic-notes/data.json
.obsidian/templates.json
.obsidian/workspace
01. 個人/02. 專注Study/Android/ADB 取得 APK 的 icon.md
01. 個人/02. 專注Study/Android/ADB.md
01. 個人/02. 專注Study/Android/AOSP.md
01. 個人/02. 專注Study/Android/Android programming.md
01. 個人/02. 專注Study/Android/Ktor.md
01. 個人/02. 專注Study/Android/Service.md
01. 個人/02. 專注Study/Android/Tools.md
01. 個人/02. 專注Study/Android/UI.md
01. 個人/02. 專注Study/C++/C++17.md
01. 個人/02. 專注Study/C++/Class template.md
01. 個人/02. 專注Study/C++/Structured binding declaration.md
01. 個人/02. 專注Study/C++/for_each.md
01. 個人/02. 專注Study/C++/lambda.md
01. 個人/02. 專注Study/C++/lvalue.md
01. 個人/02. 專注Study/C++/move operator.md
01. 個人/02. 專注Study/C++/rvalue.md
01. 個人/02. 專注Study/C++/智慧指標.md
01. 個人/02. 專注Study/RxKotlin/20200207 - Study RxKotlin.md
03. 資料收集/01. Programming/COM/20210726 - COM Interface.md
03. 資料收集/01. Programming/DB/MySQL.md
03. 資料收集/01. Programming/DB/sqlite.md
03. 資料收集/01. Programming/Design Pattern.md
03. 資料收集/01. Programming/FFMPEG/00. Introduction.md
03. 資料收集/01. Programming/FFMPEG/01. Setup.md
03. 資料收集/01. Programming/FFMPEG/FFMpeg.md
03. 資料收集/01. Programming/Flask.md
03. 資料收集/01. Programming/Media Foundation/20210604 - Windows media foundation.md
03. 資料收集/01. Programming/OpenCV.md
03. 資料收集/01. Programming/OpenGL.md
03. 資料收集/01. Programming/Python/argparse.ArgumentParser.md
03. 資料收集/01. Programming/Python/decorator.md
03. 資料收集/01. Programming/Python/logging.md
03. 資料收集/01. Programming/Python/opencv.md
03. 資料收集/01. Programming/Python/subprocess.md
03. 資料收集/01. Programming/Python/threading.md
03. 資料收集/01. Programming/Python/tkinter.md
03. 資料收集/01. Programming/Python/檢測工具.md
03. 資料收集/01. Programming/QT/Dropdown button.md
03. 資料收集/01. Programming/QT/QVariant.md
03. 資料收集/01. Programming/QT/Qt.md
03. 資料收集/01. Programming/UML.md
03. 資料收集/01. Programming/演算法.md
03. 資料收集/99. templates/blogHeader.md
03. 資料收集/99. templates/date.md
03. 資料收集/99. templates/front matter.md
03. 資料收集/99. templates/note.md
03. 資料收集/99. templates/table.md
03. 資料收集/99. templates/thisWeek.md
03. 資料收集/99. templates/日記.md
03. 資料收集/99. templates/讀書筆記.md
03. 資料收集/Hobby/RC.md
03. 資料收集/Hobby/RC/Traxxas Sledge.md
03. 資料收集/Hobby/RC/好盈電變調整中立點.md
03. 資料收集/Hobby/RC/差速器調教教學.md
03. 資料收集/Linux/CLI/cut.md
03. 資料收集/Linux/CLI/scp.md
03. 資料收集/Linux/CLI/timedatectl.md
03. 資料收集/Programming/Qt.md
03. 資料收集/Tool Setup/Hardware/RaspberryPi.md
03. 資料收集/Tool Setup/Software/Chrome.md
03. 資料收集/Tool Setup/Software/Obisidian.md
03. 資料收集/Tool Setup/Software/SublimeText.md
03. 資料收集/Tool Setup/Software/VirtualBox.md
03. 資料收集/Tool Setup/Software/Visual Studio Code.md
03. 資料收集/Tool Setup/Software/Windows Setup.md
03. 資料收集/Tool Setup/Software/Windows Terminal.md
03. 資料收集/Tool Setup/Software/freefilesync.md
03. 資料收集/Tool Setup/Software/vim.md
03. 資料收集/翻牆/V2Ray.md
03. 資料收集/翻牆/Wireguard.md
03. 資料收集/軟體工具/youtube-dl.md
2022-09-26 18:49:43 +08:00

10 lines
609 B
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Qt有許多UI元件都可以另外設定相依的「資料」例如`QCombobox`,這樣我們就不必老是依賴選項的文字來做許多麻煩的處理。
例如,`QCombobox.addItem()`可以夾帶一個`QVariant`,這個`QVariant`就可以夾帶一個pointer。
要讓`QVariant`支援`std::shared_ptr`的方式很簡單只要在你程式的最上方加入你要使用的type就可以例如我要支援我自己的class AwSentinelDevice就這樣寫
```cpp
#include <memory>
Q_DECLARE_SMART_POINTER_METATYPE(std::shared_ptr);
Q_DECLARE_METATYPE(std::shared_ptr<AwSentinelDevice>);
```