forked from github_mirror/framelesshelper
Fix app crash.
Use pointers. Signed-off-by: Yuhang Zhao <2546789017@qq.com>
This commit is contained in:
parent
43d83bf156
commit
53700554d2
62
main.cpp
62
main.cpp
|
@ -93,48 +93,48 @@ int main(int argc, char *argv[]) {
|
||||||
// Qt Widgets example:
|
// Qt Widgets example:
|
||||||
QWidget widget;
|
QWidget widget;
|
||||||
widget.setContentsMargins(0, 0, 0, 0);
|
widget.setContentsMargins(0, 0, 0, 0);
|
||||||
QLabel label;
|
QLabel *label = new QLabel;
|
||||||
label.setText(QObject::tr("Hello, World!"));
|
label->setText(QObject::tr("Hello, World!"));
|
||||||
QObject::connect(&widget, &QWidget::windowTitleChanged, &label,
|
QObject::connect(&widget, &QWidget::windowTitleChanged, label,
|
||||||
&QLabel::setText);
|
&QLabel::setText);
|
||||||
QPushButton minimizeButton;
|
QPushButton *minimizeButton = new QPushButton;
|
||||||
minimizeButton.setText(QObject::tr("Minimize"));
|
minimizeButton->setText(QObject::tr("Minimize"));
|
||||||
QObject::connect(&minimizeButton, &QPushButton::clicked, &widget,
|
QObject::connect(minimizeButton, &QPushButton::clicked, &widget,
|
||||||
&QWidget::showMinimized);
|
&QWidget::showMinimized);
|
||||||
QPushButton maximizeButton;
|
QPushButton *maximizeButton = new QPushButton;
|
||||||
maximizeButton.setText(QObject::tr("Maximize"));
|
maximizeButton->setText(QObject::tr("Maximize"));
|
||||||
QObject::connect(&maximizeButton, &QPushButton::clicked,
|
QObject::connect(maximizeButton, &QPushButton::clicked,
|
||||||
[&widget, &maximizeButton]() {
|
[&widget, &maximizeButton]() {
|
||||||
if (widget.isMaximized()) {
|
if (widget.isMaximized()) {
|
||||||
widget.showNormal();
|
widget.showNormal();
|
||||||
maximizeButton.setText(QObject::tr("Maximize"));
|
maximizeButton->setText(QObject::tr("Maximize"));
|
||||||
} else {
|
} else {
|
||||||
widget.showMaximized();
|
widget.showMaximized();
|
||||||
maximizeButton.setText(QObject::tr("Restore"));
|
maximizeButton->setText(QObject::tr("Restore"));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
QPushButton closeButton;
|
QPushButton *closeButton = new QPushButton;
|
||||||
closeButton.setText(QObject::tr("Close"));
|
closeButton->setText(QObject::tr("Close"));
|
||||||
QObject::connect(&closeButton, &QPushButton::clicked, &widget,
|
QObject::connect(closeButton, &QPushButton::clicked, &widget,
|
||||||
&QWidget::close);
|
&QWidget::close);
|
||||||
QHBoxLayout tbLayout;
|
QHBoxLayout *tbLayout = new QHBoxLayout;
|
||||||
tbLayout.setContentsMargins(0, 0, 0, 0);
|
tbLayout->setContentsMargins(0, 0, 0, 0);
|
||||||
tbLayout.setSpacing(0);
|
tbLayout->setSpacing(0);
|
||||||
tbLayout.addSpacing(15);
|
tbLayout->addSpacing(15);
|
||||||
tbLayout.addWidget(&label);
|
tbLayout->addWidget(label);
|
||||||
tbLayout.addStretch();
|
tbLayout->addStretch();
|
||||||
tbLayout.addWidget(&minimizeButton);
|
tbLayout->addWidget(minimizeButton);
|
||||||
tbLayout.addWidget(&maximizeButton);
|
tbLayout->addWidget(maximizeButton);
|
||||||
tbLayout.addWidget(&closeButton);
|
tbLayout->addWidget(closeButton);
|
||||||
QVBoxLayout mainLayout;
|
QVBoxLayout *mainLayout = new QVBoxLayout;
|
||||||
mainLayout.setContentsMargins(0, 0, 0, 0);
|
mainLayout->setContentsMargins(0, 0, 0, 0);
|
||||||
mainLayout.setSpacing(0);
|
mainLayout->setSpacing(0);
|
||||||
mainLayout.addLayout(&tbLayout);
|
mainLayout->addLayout(tbLayout);
|
||||||
mainLayout.addStretch();
|
mainLayout->addStretch();
|
||||||
widget.setLayout(&mainLayout);
|
widget.setLayout(mainLayout);
|
||||||
WinNativeEventFilter::WINDOWDATA data_widget;
|
WinNativeEventFilter::WINDOWDATA data_widget;
|
||||||
data_widget.ignoreObjects << &minimizeButton << &maximizeButton
|
data_widget.ignoreObjects << minimizeButton << maximizeButton
|
||||||
<< &closeButton;
|
<< closeButton;
|
||||||
const auto hWnd_widget = reinterpret_cast<HWND>(widget.winId());
|
const auto hWnd_widget = reinterpret_cast<HWND>(widget.winId());
|
||||||
const int tbh_widget = WinNativeEventFilter::getSystemMetric(
|
const int tbh_widget = WinNativeEventFilter::getSystemMetric(
|
||||||
hWnd_widget, WinNativeEventFilter::SystemMetric::TitleBarHeight, false);
|
hWnd_widget, WinNativeEventFilter::SystemMetric::TitleBarHeight, false);
|
||||||
|
|
Loading…
Reference in New Issue