🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
UiUtil.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstUtil/JsonValue.hpp"
25#include <QMetaObject>
26#include <QApplication>
27#include <QAbstractItemModel>
28#include <functional>
29
30AST_NAMESPACE_BEGIN
31
40AST_UIUTIL_CAPI void aAddQueued(std::function<void()> func, Qt::ConnectionType type);
41
42
45template<typename Func>
46inline void addQueued(Func &&func) {
47 const auto type = Qt::QueuedConnection;
48#if QT_VERSION >= QT_VERSION_CHECK(5, 10, 0)
49 // Qt 5.10+: 直接使用 functor 重载
50 QMetaObject::invokeMethod(qApp, std::forward<Func>(func), type);
51#else
52 // Qt 5.7 兼容
53 aAddQueued(std::forward<Func>(func), type);
54#endif
55}
56
57
58template<typename Func>
59inline void addBlockingQueued(Func &&func) {
60 const auto type = Qt::BlockingQueuedConnection;
61#if QT_VERSION >= QT_VERSION_CHECK(5, 10, 0)
62 // Qt 5.10+: 直接使用 functor 重载
63 QMetaObject::invokeMethod(qApp, std::forward<Func>(func), type);
64#else
65 // Qt 5.7 兼容
66 aAddQueued(std::forward<Func>(func), type);
67#endif
68}
69
86AST_UIUTIL_API QModelIndex modelIndexFromItemPath(QAbstractItemModel* model, const JsonValue& itemPath);
87
90AST_NAMESPACE_END
void addQueued(Func &&func)
添加一个排队执行的回调函数
定义 UiUtil.hpp:46
void aAddQueued(std::function< void()> func, Qt::ConnectionType type)
添加一个排队执行的回调函数
定义 UiUtil.cpp:82
QModelIndex modelIndexFromItemPath(QAbstractItemModel *model, const JsonValue &itemPath)
通过 ItemPath 获取 QModelIndex
定义 UiUtil.cpp:153