消除VsCode警告

This commit is contained in:
2026-09-01 18:29:28 +08:00
parent d7794ce630
commit bd1f884187
7 changed files with 18 additions and 69 deletions
-17
View File
@@ -8,29 +8,12 @@ int main(int argc, char *argv[])
app.setOrganizationName("FancyInput");
app.setApplicationName("FancyInput");
app.setApplicationVersion("1.2.0");
// 显式锁定 QuickControls2 风格为 Basic:
// 部署时裁剪掉了 Material/Universal/Imagine/FluentWinUI3,
// 若不显式指定,Qt 6.7+ 默认 FluentWinUI3,找不到会直接崩溃。
qputenv("QT_QUICK_CONTROLS_STYLE", "Basic");
// Qt 6 默认启用高 DPI 缩放,叠层/遮罩坐标后续用 devicePixelRatio 归一化
QQmlApplicationEngine engine;
// 关键:qt_add_qml_module 把 qmldir + QML 文件嵌入到 :/FancyInputQt/ 资源前缀下。
// 必须把 qrc:/ 加入 import path,QML 引擎才能发现内嵌模块;
// 否则独立运行(无 build/ 下的磁盘模块目录)会报
// "Module FancyInputQt contains no type named Main"。
engine.addImportPath(QStringLiteral("qrc:/"));
// QML 加载失败时以非零码退出(Qt 6.5+ 推荐用法)
QObject::connect(&engine, &QQmlApplicationEngine::objectCreationFailed,
&app, []() { QCoreApplication::exit(-1); },
Qt::QueuedConnection);
// 加载 MainWindow.qml(Window 壳,内含 Rectangle 根的主界面 Main.qml):
// 窗口级属性与内容自适应由 QML 侧处理,C++ 保持最简。
engine.loadFromModule("FancyInputQt", "MainWindow");
return app.exec();
+2
View File
@@ -0,0 +1,2 @@
[General]
disableUnqualifiedAccess = hostWindow
+10 -17
View File
@@ -11,40 +11,33 @@ Rectangle {
width: 600
height: 480
color: Theme.background
property int clickCount: 0
property Window settingsWindow: null
property Window overlayWindow: null
// 弹独立窗口:统一包装器现包装(等价 WPF 的 new SettingsWindow().Show())
// 关键:createObject 的 parent 传 root(主窗口)→ FancyWindow 自动成为
// transient parent 窗口(= WPF 的 Owner)。有了它:
// · 非模态:随主窗口最小化/关闭,任务栏不单列
// · 模态:Qt.WindowModal 在同一窗口组内生效,主窗口被系统禁用,
// 点击主窗口时 Windows 自带标题栏闪烁反馈(同 WPF ShowDialog)
function openSettingsWindow(modal) {
var win = settingsWindowComp.createObject(modal ? root : null, { modal: modal })
if (win) win.show()
settingsWindow = settingsWindowComp.createObject(modal ? root : null, { modal: modal })
if (settingsWindow) settingsWindow.show()
}
// 打开无边框透明悬浮窗(WPF WindowStyle=None + AllowsTransparency + Topmost)
function openOverlayWindow() {
var win = overlayWindowComp.createObject(null, {})
if (win) win.show()
overlayWindow = overlayWindowComp.createObject(null, {})
if (overlayWindow) overlayWindow.show()
}
// 设置窗口:FancyWindow 包装 SettingsWindow 内容
// 设置窗口
Component {
id: settingsWindowComp
FancyWindow {
width: 480
height: 360
windowTitle: qsTr("设置 · FancyInput")
SettingsWindow {
anchors.fill: parent
onCloseRequested: rootWindow.close()
onCloseRequested: hostWindow.close()
}
}
}
// 悬浮窗:无边框 + 透明 + 置顶 + 工具窗(FancyWindow 一键配置)
// 悬浮窗
Component {
id: overlayWindowComp
FancyWindow {
@@ -57,7 +50,7 @@ Rectangle {
OverlayWindow {
anchors.fill: parent
onCloseRequested: rootWindow.close()
onCloseRequested: hostWindow.close()
}
}
}
-6
View File
@@ -1,18 +1,12 @@
import QtQuick
import FancyInput.Controls
import FancyInput.Windows
// 主窗口:用统一包装器 FancyWindow 包装主界面内容
// 内容在 Main.qml(Rectangle 根,Qt Creator 可可视化编辑)
// main.cpp 通过 loadFromModule("FancyInputQt", "MainWindow") 加载本文件。
FancyWindow {
id: win
width: 600
height: 480
visible: true
windowTitle: qsTr("FancyInput · Qt 迁移版(阶段 0)")
// 内容组件:anchors.fill 跟随窗口缩放
Main {
anchors.fill: parent
}
-1
View File
@@ -1,7 +1,6 @@
pragma Singleton
import QtQuick
// 主题:与 WPF 版保持一致
QtObject {
readonly property color accent: "#651F65"
readonly property color accentLight: "#8A3A8A"
+1 -28
View File
@@ -1,35 +1,8 @@
import QtQuick
// 统一窗口包装器(等价 WPF 的 Window 类)
//
// 用法:内容组件一律保持 Rectangle 根(Qt Creator 设计模式可可视化编辑),
// 需要窗口时用本包装器现包装即可:
//
// FancyWindow {
// width: 480
// height: 360
// windowTitle: qsTr("设置")
// modal: true // 模态(WPF ShowDialog 等价)
// SettingsWindow { anchors.fill: parent }
// }
//
// // 无边框透明悬浮窗(WPF WindowStyle=None + AllowsTransparency + Topmost)
// FancyWindow {
// frameless: true
// transparent: true
// alwaysOnTop: true
// toolWindow: true
// OverlayWindow { anchors.fill: parent }
// }
//
// 子项(内容组件)直接写在包装器里即可 —— Window 的 data 默认行为
// 会自动把 Item 子项挂到内容区(contentItem)。
Window {
id: root
// 内容组件可通过 rootWindow 访问包装器(如 rootWindow.close() 关窗)
// 固定别名,统一命名,避免每个包装处都要 id 转发
property alias rootWindow: root
property alias hostWindow: root
// ===== 窗口级属性(对齐 WPF Window) =====
property string windowTitle: "" // 标题(WPF Title)