parent
54f9a1ed4b
commit
54d208ec5c
|
@ -11,11 +11,7 @@
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="styleSheet">
|
<property name="styleSheet">
|
||||||
<string notr="true">#TitleBar {
|
<string notr="true">#iconButton, #minimizeButton, #maximizeButton, #closeButton {
|
||||||
border-top: 1px solid rgb(255, 255, 255);
|
|
||||||
}
|
|
||||||
|
|
||||||
#iconButton, #minimizeButton, #maximizeButton, #closeButton {
|
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
border-radius: 0px;
|
border-radius: 0px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
#include "ui_MainWindow.h"
|
#include "ui_MainWindow.h"
|
||||||
#include "ui_TitleBar.h"
|
#include "ui_TitleBar.h"
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
|
#include <QStyleOption>
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
#ifdef Q_OS_WINDOWS
|
#ifdef Q_OS_WINDOWS
|
||||||
#include "../../winnativeeventfilter.h"
|
#include "../../winnativeeventfilter.h"
|
||||||
|
@ -35,10 +36,22 @@
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
QCoreApplication::setAttribute(Qt::AA_DontCreateNativeWidgetSiblings);
|
QCoreApplication::setAttribute(Qt::AA_DontCreateNativeWidgetSiblings);
|
||||||
|
// High DPI scaling is enabled by default from Qt 6
|
||||||
#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
|
#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
|
||||||
|
// Windows: we are using the manifest file to get maximum compatibility
|
||||||
|
// because some APIs are not supprted on old systems such as Windows 7
|
||||||
|
// and Windows 8. And once we have set the DPI awareness level in the
|
||||||
|
// manifest file, any attemptation to try to change it through API will
|
||||||
|
// fail. In other words, Qt won't be able to enable or disable high DPI
|
||||||
|
// scaling or change the DPI awareness level once we have set it in the
|
||||||
|
// manifest file. So the following two lines are uesless actually (However,
|
||||||
|
// they are still useful on other platforms).
|
||||||
QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
|
QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
|
||||||
QGuiApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
|
QGuiApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
|
||||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0))
|
#if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0))
|
||||||
|
// Don't round the scale factor.
|
||||||
|
// This will break QWidget applications because they can't render correctly.
|
||||||
|
// Qt Quick applications won't have this issue.
|
||||||
QGuiApplication::setHighDpiScaleFactorRoundingPolicy(
|
QGuiApplication::setHighDpiScaleFactorRoundingPolicy(
|
||||||
Qt::HighDpiScaleFactorRoundingPolicy::PassThrough);
|
Qt::HighDpiScaleFactorRoundingPolicy::PassThrough);
|
||||||
#endif
|
#endif
|
||||||
|
@ -62,9 +75,6 @@ int main(int argc, char *argv[])
|
||||||
titleBarWidget.horizontalLayout->insertWidget(1, menuBar);
|
titleBarWidget.horizontalLayout->insertWidget(1, menuBar);
|
||||||
menuBar->setMaximumHeight(20);
|
menuBar->setMaximumHeight(20);
|
||||||
|
|
||||||
titleBarWidget.iconButton->setIcon(mainWindow->windowIcon());
|
|
||||||
titleBarWidget.titleLabel->setText(mainWindow->windowTitle());
|
|
||||||
|
|
||||||
mainWindow->setMenuWidget(widget);
|
mainWindow->setMenuWidget(widget);
|
||||||
|
|
||||||
QObject::connect(mainWindow,
|
QObject::connect(mainWindow,
|
||||||
|
@ -95,6 +105,12 @@ int main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
QStyleOption option;
|
||||||
|
option.initFrom(mainWindow);
|
||||||
|
const QIcon icon = mainWindow->style()->standardIcon(QStyle::SP_ComputerIcon, &option);
|
||||||
|
mainWindow->setWindowIcon(icon);
|
||||||
|
mainWindow->setWindowTitle(QObject::tr("Hello, World!"));
|
||||||
|
|
||||||
#ifdef Q_OS_WINDOWS
|
#ifdef Q_OS_WINDOWS
|
||||||
WinNativeEventFilter::addFramelessWindow(mainWindow);
|
WinNativeEventFilter::addFramelessWindow(mainWindow);
|
||||||
const auto data = WinNativeEventFilter::windowData(mainWindow);
|
const auto data = WinNativeEventFilter::windowData(mainWindow);
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 19 KiB |
|
@ -184,7 +184,7 @@ bool isWin10OrGreater(const int ver)
|
||||||
|
|
||||||
bool shouldHaveWindowFrame()
|
bool shouldHaveWindowFrame()
|
||||||
{
|
{
|
||||||
#if 1
|
#if 0
|
||||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 9, 0))
|
#if (QT_VERSION >= QT_VERSION_CHECK(5, 9, 0))
|
||||||
return QOperatingSystemVersion::current() >= QOperatingSystemVersion::Windows10;
|
return QOperatingSystemVersion::current() >= QOperatingSystemVersion::Windows10;
|
||||||
#else
|
#else
|
||||||
|
|
Loading…
Reference in New Issue