parent
54f9a1ed4b
commit
54d208ec5c
|
@ -11,11 +11,7 @@
|
|||
</rect>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">#TitleBar {
|
||||
border-top: 1px solid rgb(255, 255, 255);
|
||||
}
|
||||
|
||||
#iconButton, #minimizeButton, #maximizeButton, #closeButton {
|
||||
<string notr="true">#iconButton, #minimizeButton, #maximizeButton, #closeButton {
|
||||
background-color: transparent;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include "ui_MainWindow.h"
|
||||
#include "ui_TitleBar.h"
|
||||
#include <QApplication>
|
||||
#include <QStyleOption>
|
||||
#include <QWidget>
|
||||
#ifdef Q_OS_WINDOWS
|
||||
#include "../../winnativeeventfilter.h"
|
||||
|
@ -35,10 +36,22 @@
|
|||
int main(int argc, char *argv[])
|
||||
{
|
||||
QCoreApplication::setAttribute(Qt::AA_DontCreateNativeWidgetSiblings);
|
||||
// High DPI scaling is enabled by default from Qt 6
|
||||
#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_UseHighDpiPixmaps);
|
||||
#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(
|
||||
Qt::HighDpiScaleFactorRoundingPolicy::PassThrough);
|
||||
#endif
|
||||
|
@ -62,9 +75,6 @@ int main(int argc, char *argv[])
|
|||
titleBarWidget.horizontalLayout->insertWidget(1, menuBar);
|
||||
menuBar->setMaximumHeight(20);
|
||||
|
||||
titleBarWidget.iconButton->setIcon(mainWindow->windowIcon());
|
||||
titleBarWidget.titleLabel->setText(mainWindow->windowTitle());
|
||||
|
||||
mainWindow->setMenuWidget(widget);
|
||||
|
||||
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
|
||||
WinNativeEventFilter::addFramelessWindow(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()
|
||||
{
|
||||
#if 1
|
||||
#if 0
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 9, 0))
|
||||
return QOperatingSystemVersion::current() >= QOperatingSystemVersion::Windows10;
|
||||
#else
|
||||
|
|
Loading…
Reference in New Issue