From 9dcea027f16c4ce5852da3dfc8aca284c582bd7d Mon Sep 17 00:00:00 2001 From: sola.lu <sola.lu.greentest.com.cn> Date: 周五, 06 6月 2025 18:19:18 +0800 Subject: [PATCH] 1.注释掉custom margin,解决程序放大后,遮盖窗口底部内容的问题。 --- src/core/qwindowkit_windows.h | 65 +++++++++++++++----------------- 1 files changed, 31 insertions(+), 34 deletions(-) diff --git a/src/core/qwindowkit_windows.h b/src/core/qwindowkit_windows.h index 8c5c7c0..aad3775 100644 --- a/src/core/qwindowkit_windows.h +++ b/src/core/qwindowkit_windows.h @@ -5,6 +5,14 @@ #ifndef QWINDOWKIT_WINDOWS_H #define QWINDOWKIT_WINDOWS_H +#ifndef _USER32_ +# define _USER32_ +#endif + +#ifndef _DWMAPI_ +# define _DWMAPI_ +#endif + #include <QtCore/qt_windows.h> #include <QtCore/qglobal.h> @@ -62,22 +70,22 @@ inline bool IsWindows1122H2OrGreater_Real() { RTL_OSVERSIONINFOW rovi = GetRealOSVersion(); return (rovi.dwMajorVersion > 10) || - (rovi.dwMajorVersion == 10 && (rovi.dwMinorVersion > 0 || - rovi.dwBuildNumber >= 22621)); + (rovi.dwMajorVersion == 10 && + (rovi.dwMinorVersion > 0 || rovi.dwBuildNumber >= 22621)); } inline bool IsWindows11OrGreater_Real() { RTL_OSVERSIONINFOW rovi = GetRealOSVersion(); return (rovi.dwMajorVersion > 10) || - (rovi.dwMajorVersion == 10 && (rovi.dwMinorVersion > 0 || - rovi.dwBuildNumber >= 22000)); + (rovi.dwMajorVersion == 10 && + (rovi.dwMinorVersion > 0 || rovi.dwBuildNumber >= 22000)); } inline bool IsWindows1020H1OrGreater_Real() { RTL_OSVERSIONINFOW rovi = GetRealOSVersion(); return (rovi.dwMajorVersion > 10) || - (rovi.dwMajorVersion == 10 && (rovi.dwMinorVersion > 0 || - rovi.dwBuildNumber >= 19041)); + (rovi.dwMajorVersion == 10 && + (rovi.dwMinorVersion > 0 || rovi.dwBuildNumber >= 19041)); } inline bool IsWindows102004OrGreater_Real() { @@ -87,8 +95,8 @@ inline bool IsWindows101903OrGreater_Real() { RTL_OSVERSIONINFOW rovi = GetRealOSVersion(); return (rovi.dwMajorVersion > 10) || - (rovi.dwMajorVersion == 10 && (rovi.dwMinorVersion > 0 || - rovi.dwBuildNumber >= 18362)); + (rovi.dwMajorVersion == 10 && + (rovi.dwMinorVersion > 0 || rovi.dwBuildNumber >= 18362)); } inline bool IsWindows1019H1OrGreater_Real() { @@ -98,8 +106,8 @@ inline bool IsWindows101809OrGreater_Real() { RTL_OSVERSIONINFOW rovi = GetRealOSVersion(); return (rovi.dwMajorVersion > 10) || - (rovi.dwMajorVersion == 10 && (rovi.dwMinorVersion > 0 || - rovi.dwBuildNumber >= 17763)); + (rovi.dwMajorVersion == 10 && + (rovi.dwMinorVersion > 0 || rovi.dwBuildNumber >= 17763)); } inline bool IsWindows10RS5OrGreater_Real() { @@ -145,10 +153,7 @@ void close(); QString stringValue(QStringView subKey) const; - QPair<DWORD, bool> dwordValue(QStringView subKey) const; - - template<typename T> - std::optional<T> value(QStringView subKey) const; + std::pair<DWORD, bool> dwordValue(QStringView subKey) const; private: HKEY m_key; @@ -159,34 +164,26 @@ inline bool WindowsRegistryKey::isValid() const { return m_key != nullptr; } - - template<> - inline std::optional<DWORD> WindowsRegistryKey::value(QStringView subKey) const { - const auto dv = dwordValue(subKey); - if (!dv.second) { - return {}; - } - return dv.first; - } #elif QT_VERSION < QT_VERSION_CHECK(6, 8, 1) + using WindowsRegistryKey = QWinRegistryKey; +#else class WindowsRegistryKey : public QWinRegistryKey { public: - WindowsRegistryKey(HKEY parentHandle, QStringView subKey, REGSAM permissions = KEY_READ, REGSAM access = 0); + WindowsRegistryKey(HKEY parentHandle, QStringView subKey, REGSAM permissions = KEY_READ, + REGSAM access = 0) + : QWinRegistryKey(parentHandle, subKey, permissions, access) { + } - template<typename T> - std::optional<T> value(QStringView subKey) const; + inline std::pair<DWORD, bool> dwordValue(QStringView subKey) const; }; - template<> - inline std::optional<DWORD> WindowsRegistryKey::value(QStringView subKey) const { - const auto dv = dwordValue(subKey); - if (!dv.second) { - return {}; + inline std::pair<DWORD, bool> WindowsRegistryKey::dwordValue(QStringView subKey) const { + const auto val = value<DWORD>(subKey); + if (!val) { + return {0, false}; } - return dv.first; + return {val.value(), true}; } -#else - using WindowsRegistryKey = QWinRegistryKey; #endif // -- Gitblit v1.9.1