From df53287060966d78ffccac78342fb5d0a028f835 Mon Sep 17 00:00:00 2001 From: sola.lu <sola.lu.greentest.com.cn> Date: 周二, 10 6月 2025 19:03:07 +0800 Subject: [PATCH] 1.添加翻译,about,手册,login这几个按钮到标题栏。 --- examples/shared/widgetframe/windowbar.cpp | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 116 insertions(+), 0 deletions(-) diff --git a/examples/shared/widgetframe/windowbar.cpp b/examples/shared/widgetframe/windowbar.cpp index 38a398e..98ce86e 100644 --- a/examples/shared/widgetframe/windowbar.cpp +++ b/examples/shared/widgetframe/windowbar.cpp @@ -99,6 +99,30 @@ return static_cast<QAbstractButton *>(d->widgetAt(WindowBarPrivate::CloseButton)); } + QAbstractButton *WindowBar::loginButton() const + { + Q_D(const WindowBar); + return static_cast<QAbstractButton *>(d->widgetAt(WindowBarPrivate::LoginButton)); + } + + QAbstractButton *WindowBar::languageButton() const + { + Q_D(const WindowBar); + return static_cast<QAbstractButton *>(d->widgetAt(WindowBarPrivate::LanguageButton)); + } + + QAbstractButton *WindowBar::manualButton() const + { + Q_D(const WindowBar); + return static_cast<QAbstractButton *>(d->widgetAt(WindowBarPrivate::ManualButton)); + } + + QAbstractButton *WindowBar::aboutButton() const + { + Q_D(const WindowBar); + return static_cast<QAbstractButton *>(d->widgetAt(WindowBarPrivate::AboutButton)); + } + void WindowBar::setMenuBar(QMenuBar *menuBar) { Q_D(WindowBar); auto org = takeMenuBar(); @@ -180,6 +204,54 @@ connect(btn, &QAbstractButton::clicked, this, &WindowBar::closeRequested); } + void WindowBar::setLoginButton(QAbstractButton *btn) + { + Q_D(WindowBar); + auto org = takeLoginButton(); + if (org) + org->deleteLater(); + if (!btn) + return; + d->setWidgetAt(WindowBarPrivate::LoginButton, btn); + connect(btn, &QAbstractButton::clicked, this, &WindowBar::loginRequested); + } + + void WindowBar::setLanguageButton(QAbstractButton *btn) + { + Q_D(WindowBar); + auto org = takeLanguageButton(); + if(org) + org->deleteLater(); + if(!btn) + return; + d->setWidgetAt(WindowBarPrivate::LanguageButton, btn); + connect(btn, &QAbstractButton::clicked, this, &WindowBar::languageRequested); + } + + void WindowBar::setManualButton(QAbstractButton *btn) + { + Q_D(WindowBar); + auto org = takeManualButton(); + if(org) + org->deleteLater(); + if(!btn) + return; + d->setWidgetAt(WindowBarPrivate::ManualButton, btn); + connect(btn, &QAbstractButton::clicked, this, &WindowBar::manualRequested); + } + + void WindowBar::setAboutButton(QAbstractButton *btn) + { + Q_D(WindowBar); + auto org = takeAboutButton(); + if(org) + org->deleteLater(); + if(!btn) + return; + d->setWidgetAt(WindowBarPrivate::AboutButton, btn); + connect(btn, &QAbstractButton::clicked, this, &WindowBar::aboutRequested); + } + QMenuBar *WindowBar::takeMenuBar() { Q_D(WindowBar); return static_cast<QMenuBar *>(d->takeWidgetAt(WindowBarPrivate::MenuWidget)); @@ -235,6 +307,50 @@ return btn; } + QAbstractButton *WindowBar::takeLoginButton() + { + Q_D(WindowBar); + auto btn = static_cast<QAbstractButton*>(d->takeWidgetAt(WindowBarPrivate::LoginButton)); + if(!btn){ + return nullptr; + } + disconnect(btn, &QAbstractButton::clicked, this, &WindowBar::loginRequested); + return btn; + } + + QAbstractButton *WindowBar::takeLanguageButton() + { + Q_D(WindowBar); + auto btn = static_cast<QAbstractButton*>(d->takeWidgetAt(WindowBarPrivate::LanguageButton)); + if(!btn){ + return nullptr; + } + disconnect(btn, &QAbstractButton::clicked, this, &WindowBar::languageRequested); + return btn; + } + + QAbstractButton *WindowBar::takeManualButton() + { + Q_D(WindowBar); + auto btn = static_cast<QAbstractButton*>(d->takeWidgetAt(WindowBarPrivate::ManualButton)); + if(!btn){ + return nullptr; + } + disconnect(btn, &QAbstractButton::clicked, this, &WindowBar::manualRequested); + return btn; + } + + QAbstractButton *WindowBar::takeAboutButton() + { + Q_D(WindowBar); + auto btn = static_cast<QAbstractButton*>(d->takeWidgetAt(WindowBarPrivate::AboutButton)); + if(!btn){ + return nullptr; + } + disconnect(btn, &QAbstractButton::clicked, this, &WindowBar::aboutRequested); + return btn; + } + QWidget *WindowBar::hostWidget() const { Q_D(const WindowBar); return d->w; -- Gitblit v1.9.1