From f68ed27c1467a40697118840d4f6c81fac60d0e3 Mon Sep 17 00:00:00 2001 From: czyt1988 Date: Wed, 3 Jul 2024 14:10:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E8=B0=83=E6=95=B4category?= =?UTF-8?q?=E9=AB=98=E5=BA=A6=E5=90=8E=EF=BC=8Cpannel=E9=AB=98=E5=BA=A6?= =?UTF-8?q?=E4=B8=8D=E8=B7=9F=E7=9D=80=E6=94=B9=E5=8F=98=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/SARibbonBar/SARibbonBar.cpp | 3 +- src/example/MainWindowExample/mainwindow.cpp | 69 ++++++++++++++++---- src/example/MainWindowExample/mainwindow.h | 5 ++ 3 files changed, 65 insertions(+), 12 deletions(-) diff --git a/src/SARibbonBar/SARibbonBar.cpp b/src/SARibbonBar/SARibbonBar.cpp index 43f8300..82400aa 100644 --- a/src/SARibbonBar/SARibbonBar.cpp +++ b/src/SARibbonBar/SARibbonBar.cpp @@ -1220,6 +1220,7 @@ void SARibbonBar::setCategoryHeight(int h, bool resizeByNow) } else { *(d_ptr->mUserDefCategoryHeight) = h; } + resizeStackedContainerWidget(); if (resizeByNow) { updateRibbonGeometry(); } @@ -2162,7 +2163,7 @@ void SARibbonBar::resizeStackedContainerWidget() int x = border.left(); int y = ribbonTabBarGeometry.bottom() + 1; int w = width() - border.left() - border.right(); - int h = d_ptr->mCategoryHeight; + int h = d_ptr->categoryHeight(); if (d_ptr->mStackedContainerWidget->isPopupMode()) { // 弹出模式时,位置为全局位置 QPoint absPosition = mapToGlobal(QPoint(x, y)); diff --git a/src/example/MainWindowExample/mainwindow.cpp b/src/example/MainWindowExample/mainwindow.cpp index add4987..2e3564b 100644 --- a/src/example/MainWindowExample/mainwindow.cpp +++ b/src/example/MainWindowExample/mainwindow.cpp @@ -621,6 +621,26 @@ void MainWindow::onCheckBoxAlignmentCenterClicked(bool checked) } } +void MainWindow::onSpinBoxRibbonTitleHeightChanged(int h) +{ + ribbonBar()->setTitleBarHeight(h); +} + +void MainWindow::onSpinBoxRibbonTabHeightChanged(int h) +{ + ribbonBar()->setTabBarHeight(h); +} + +void MainWindow::onSpinBoxRibbonCategoryHeightChanged(int h) +{ + ribbonBar()->setCategoryHeight(h); +} + +void MainWindow::onSpinBoxRibbonPannelTtitleHeightChanged(int h) +{ + ribbonBar()->setPannelTitleHeight(h); +} + /** * @brief 创建其它actions,这些actions并不在SARibbonBar管理 */ @@ -1133,17 +1153,44 @@ void MainWindow::createCategorySize(SARibbonCategory* page) page->addPannel(pannel); // pannel 3 - pannel = new SARibbonPannel(tr("Grid")); - QWidget* w = new QWidget(); - QGridLayout* g = new QGridLayout(w); - QLabel* lab1 = new QLabel("value1:"); - QLineEdit* edi1 = new QLineEdit(w); - QLabel* lab2 = new QLabel("value2:"); - QLineEdit* edi2 = new QLineEdit(w); - g->addWidget(lab1, 0, 0); - g->addWidget(edi1, 0, 1); - g->addWidget(lab2, 1, 0); - g->addWidget(edi2, 1, 1); + // 这里演示了一个窗口带有gridlayoout + pannel = new SARibbonPannel(tr("Grid")); + QWidget* w = new QWidget(); + QGridLayout* g = new QGridLayout(w); + + QLabel* lab0 = new QLabel("Ribbon Title Height:"); + QSpinBox* spinboxRibbonTitleHeight = new QSpinBox(w); + spinboxRibbonTitleHeight->setRange(10, 99); + + QLabel* lab1 = new QLabel("Ribbon Tab Height:"); + QSpinBox* spinboxRibbonTabHeight = new QSpinBox(w); + spinboxRibbonTabHeight->setRange(10, 99); + + QLabel* lab2 = new QLabel("Ribbon Category Height:"); + QSpinBox* spinboxRibbonCategoryHeight = new QSpinBox(w); + spinboxRibbonCategoryHeight->setRange(30, 300); + + QLabel* lab3 = new QLabel("Ribbon Pannel Title:"); + QSpinBox* spinboxRibbonPannelTtitleHeight = new QSpinBox(w); + spinboxRibbonPannelTtitleHeight->setRange(5, 99); + + g->addWidget(lab0, 0, 0); + g->addWidget(spinboxRibbonTitleHeight, 0, 1); + g->addWidget(lab1, 1, 0); + g->addWidget(spinboxRibbonTabHeight, 1, 1); + g->addWidget(lab2, 0, 2); + g->addWidget(spinboxRibbonCategoryHeight, 0, 3); + g->addWidget(lab3, 1, 2); + g->addWidget(spinboxRibbonPannelTtitleHeight, 1, 3); + spinboxRibbonTitleHeight->setValue(ribbonBar()->titleBarHeight()); + spinboxRibbonTabHeight->setValue(ribbonBar()->tabBarHeight()); + spinboxRibbonCategoryHeight->setValue(ribbonBar()->categoryHeight()); + spinboxRibbonPannelTtitleHeight->setValue(ribbonBar()->pannelTitleHeight()); + connect(spinboxRibbonTitleHeight, &QSpinBox::valueChanged, this, &MainWindow::onSpinBoxRibbonTitleHeightChanged); + connect(spinboxRibbonTabHeight, &QSpinBox::valueChanged, this, &MainWindow::onSpinBoxRibbonTabHeightChanged); + connect(spinboxRibbonCategoryHeight, &QSpinBox::valueChanged, this, &MainWindow::onSpinBoxRibbonCategoryHeightChanged); + connect(spinboxRibbonPannelTtitleHeight, &QSpinBox::valueChanged, this, &MainWindow::onSpinBoxRibbonPannelTtitleHeightChanged); + pannel->addLargeWidget(w); page->addPannel(pannel); } diff --git a/src/example/MainWindowExample/mainwindow.h b/src/example/MainWindowExample/mainwindow.h index 3bad9fe..2a28720 100644 --- a/src/example/MainWindowExample/mainwindow.h +++ b/src/example/MainWindowExample/mainwindow.h @@ -69,6 +69,11 @@ private slots: void onActionVisibleAllTriggered(bool on); // 居中对齐checkbox的槽 void onCheckBoxAlignmentCenterClicked(bool checked); + // + void onSpinBoxRibbonTitleHeightChanged(int h); + void onSpinBoxRibbonTabHeightChanged(int h); + void onSpinBoxRibbonCategoryHeightChanged(int h); + void onSpinBoxRibbonPannelTtitleHeightChanged(int h); private: // 创建其它actions,这些actions并不在SARibbonBar管理