From e698b5909df5312c3a630b7d06a326c0c3a8af61 Mon Sep 17 00:00:00 2001 From: czyt1988 Date: Tue, 26 Mar 2024 09:40:07 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4clangformat,=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0widget=E4=B8=BB=E9=A2=98=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .clang-format | 7 +------ doc/how-to-build-cn.md | 13 +++++++++---- doc/pic/build-cmake-vs-04-other.png | Bin 0 -> 43239 bytes src/SARibbonBar/SARibbonBar.cpp | 6 ++++-- src/example/WidgetWithRibbon/Widget.cpp | 22 ++++++++++++++++++++++ src/example/WidgetWithRibbon/Widget.h | 19 +++++++++++-------- 6 files changed, 47 insertions(+), 20 deletions(-) create mode 100644 doc/pic/build-cmake-vs-04-other.png diff --git a/.clang-format b/.clang-format index 694b16d5..7f3d7786 100644 --- a/.clang-format +++ b/.clang-format @@ -62,8 +62,6 @@ AlwaysBreakTemplateDeclarations: true # clang-format does not handle that. AllowShortFunctionsOnASingleLine: false AllowShortIfStatementsOnASingleLine: false -AllowShortLambdasOnASingleLine: false -AllowShortLoopsOnASingleLine: false # BinPackParameters: false BinPackArguments: false @@ -74,7 +72,6 @@ AlwaysBreakAfterReturnType: None PenaltyReturnTypeOnItsOwnLine: 5000 PenaltyBreakAssignment: 5000 PenaltyBreakBeforeFirstCallParameter: 5000 -PenaltyExcessCharacter: 1 # The coding style specifies some include order categories, but also tells to # separate categories with an empty line. It does not specify the order within @@ -98,6 +95,4 @@ ReflowComments: true SpacesInSquareBrackets: true SpacesInAngles: true -KeepEmptyLinesAtTheStartOfBlocks: true - -AllowShortCaseLabelsOnASingleLine: true \ No newline at end of file +KeepEmptyLinesAtTheStartOfBlocks: true \ No newline at end of file diff --git a/doc/how-to-build-cn.md b/doc/how-to-build-cn.md index 3271afca..196a23d6 100644 --- a/doc/how-to-build-cn.md +++ b/doc/how-to-build-cn.md @@ -52,14 +52,17 @@ build步骤选择install ![](./pic/build-cmake-vs-01.png) -选中CMake菜单->全部生成 +选中CMake菜单->全部生成(有些版本没有CMake菜单,可以在CMakeLists.txt点右键) ![](./pic/build-cmake-vs-03.png) -选中CMake菜单->安装 +选中CMake菜单->安装(有些版本没有CMake菜单,可以在CMakeLists.txt点右键) ![](./pic/build-cmake-vs-04.png) +> 不同的vs操作有点不一样,没有CMake菜单的,可以在CMakeLists.txt点右键 +![](./pic/build-cmake-vs-04-other.png) + 这时你会在SARibbon根目录下看到形如`bin_qt5.14.2_MSVC_x64`这样的安装目录,这里自动把`QWindowkit`库安装在此目录下 ![](./pic/build-cmake-qwk-qtc-04.png) @@ -135,9 +138,9 @@ qmake构建SARibbonBar只需使用Qt Creator打开SARibbon.pro文件即可 ## 基于cmake引入SARibbonBar库 -首先要通过cmake编译并执行安装,在自己的工程按照如下步骤执行: +首先要通过cmake编译并执行安装,在自己的工程CMakeLists.txt按照如下步骤执行: -1. 指定SARibbonBar的安装目录,把安装目录下的`lib/cmake/SARibbonBar`位置设置给`SARibbonBar_DIR`变量 +1. 指定SARibbonBar的安装目录,把安装目录下的`lib/cmake/SARibbonBar`位置设置给`SARibbonBar_DIR`变量(CMake在执行`find_package(xx)`时,会先查看是否有`xx_DIR`变量,如果有,会先查询`xx_DIR`下是否有对应的`xxConfig.cmake`文件) ```cmake set(SARibbonBar_DIR "C:\src\Qt\SARibbon\bin_qt5.14.2_MSVC_x64\lib\cmake\SARibbonBar") @@ -159,6 +162,8 @@ target_link_libraries(${myapp_target_name} PUBLIC ## 基于qmake引入SARibbonBar库 +> Qt6开始,不再推荐使用qmake,SARibbon未来的版本有可能会取消qmake的支持 + qmake的编译过程会在SARibbon下生成`bin_qt{Qt version}_{MSVC/GNU}_x{32/64}`文件夹,库文件和dll文件都在此文件夹下,importSARibbonBarLib.pri会自动把这个文件夹下的库引用进来 步骤如下: diff --git a/doc/pic/build-cmake-vs-04-other.png b/doc/pic/build-cmake-vs-04-other.png new file mode 100644 index 0000000000000000000000000000000000000000..a492fd3db75d1e810e53f1a0bd4ad86586bf9bdd GIT binary patch literal 43239 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ⅈ zz0l=QCxc~%o7jgV3sPef-tG`f@4`qaF+cArJ#xer=;9|7G;3a&kE7lW8R-t%ys3M2 zQL2d8ijETTI-f{sVCm6Stv!S|mRO8FviHqyOPfMH9?3UI%b1K> z>C1UP-wqW(5|!oEDH4b~3|L67y{0|PADH;6G*XHUW~9wL{rsHX+~nYg%6>m)^M&|g zl(5Tf?T}g4dN_ zf}FDtY%&0|oIcFeo*`T~%a{~WaE^`Qa*Y9Vn;eC}qF6}T1*Sx0P)<=o>&8(ywL=&c zA}y--66eIs>s_~e=}WDjGWSMii`>-PO~Ckq}0>GDHbSp`fX8XwaOihEiRCPCde z%22-EtcIQ2T6?M}I{aMb({7j@m^gERAR)h0O5#*3f$U!3&-Xg;iAt*vNG2U>Qou2b zI+7^!*YUE3NO*L$-<;7pc5o17^XDOL{x!e(F`~6DW-#OCVwC4Ga8kzuX@yow3TKr? zc2Rcgq!+{eLwVk;$+#CwZOz8P6|KvQyo*FJUg!vggo^EKj2b-mI##N3-J~ccKsY&U zshmjyg-^g(b|kcU-KNRCAxL#2-e-8(qhKqTD*7Kam^t3{NaWl~=AzwraXONzaCEEH zTTBThsKg0MPjtE}aBt`Mk8W^RmG;m|3SEq|$$G5DK$nFWCXQpPJc4MRPrPfHzB^+t zdqA;z8|P|iAmy*cpErT_f8YU&lp3=k%6yR-?s73^LnGqitKwo^RwWu8FCu%_j3EPP zEb{74OEvx55ia@BZ-oSlkgXS+h+ETOkG(ros}MPi{G(fumPvi0Zyeo~PUkYzH8{T2 z1mNr45=i4AYaxD}!WN`cU>eEC-)qP2y;>-?JWVr#jIXn1OEHV$yhyEQJ#NSe`s*QK z-KEn27=bD928INXFd)Wjz|U9=rx^8pNbl=Iz)wv{Q?W!IiT)3T CZPVHS literal 0 HcmV?d00001 diff --git a/src/SARibbonBar/SARibbonBar.cpp b/src/SARibbonBar/SARibbonBar.cpp index 30996773..9d4af354 100644 --- a/src/SARibbonBar/SARibbonBar.cpp +++ b/src/SARibbonBar/SARibbonBar.cpp @@ -1621,9 +1621,11 @@ void SARibbonBar::updateRibbonGeometry() c->updateItemGeometry(); return true; }); + //!主题变更后,tabbar的长度需要进行刷新 + //! 直接给一个resizeevent,让所有刷新 - // QResizeEvent* e = new QResizeEvent(size(), QSize()); - // QApplication::postEvent(this, e); + QResizeEvent* e = new QResizeEvent(size(), QSize()); + QApplication::postEvent(this, e); } /** diff --git a/src/example/WidgetWithRibbon/Widget.cpp b/src/example/WidgetWithRibbon/Widget.cpp index 0596655f..bfcc22d2 100644 --- a/src/example/WidgetWithRibbon/Widget.cpp +++ b/src/example/WidgetWithRibbon/Widget.cpp @@ -53,6 +53,21 @@ void Widget::buildRibbon(SARibbonBar* bar) pannel2->addLargeAction(createAction("setting", ":/icon/icon/customize0.svg")); pannel2->addLargeAction(createAction("windowsflag", ":/icon/icon/windowsflag-normal.svg")); bar->addCategoryPage(page1); + //加入主题 + mComboTheme = new QComboBox(); + mComboTheme->addItem("Theme Win7", SARibbonMainWindow::RibbonThemeWindows7); + mComboTheme->addItem("Theme Office2013", SARibbonMainWindow::RibbonThemeOffice2013); + mComboTheme->addItem("Theme Office2016 Blue", SARibbonMainWindow::RibbonThemeOffice2016Blue); + mComboTheme->addItem("Theme Office2021 Blue", SARibbonMainWindow::RibbonThemeOffice2021Blue); + mComboTheme->addItem("Theme Dark", SARibbonMainWindow::RibbonThemeDark); + mComboTheme->addItem("Theme Dark2", SARibbonMainWindow::RibbonThemeDark2); + mComboTheme->setCurrentIndex(mComboTheme->findData(static_cast< int >(SARibbonMainWindow::RibbonThemeOffice2013))); + connect(mComboTheme, + QOverload< int >::of(&QComboBox::currentIndexChanged), + this, + &Widget::onRibbonThemeComboBoxCurrentIndexChanged); + pannel2->addSeparator(); + pannel2->addSmallWidget(mComboTheme); SARibbonQuickAccessBar* qbar = mRibbonBar->quickAccessBar(); qbar->addAction(createAction("undo", ":/icon/icon/undo.svg")); @@ -67,3 +82,10 @@ QAction* Widget::createAction(const QString& text, const QString& iconurl) act->setObjectName(text); return act; } + +void Widget::onRibbonThemeComboBoxCurrentIndexChanged(int index) +{ + SARibbonMainWindow::RibbonTheme t = static_cast< SARibbonMainWindow::RibbonTheme >(mComboTheme->itemData(index).toInt()); + sa_set_ribbon_theme(mRibbonBar, t); + mRibbonBar->updateRibbonGeometry(); +} diff --git a/src/example/WidgetWithRibbon/Widget.h b/src/example/WidgetWithRibbon/Widget.h index 2c34086e..3e7cfd2a 100644 --- a/src/example/WidgetWithRibbon/Widget.h +++ b/src/example/WidgetWithRibbon/Widget.h @@ -2,7 +2,7 @@ #define WIDGET_H #include - +#include QT_BEGIN_NAMESPACE namespace Ui { @@ -13,18 +13,21 @@ QT_END_NAMESPACE class SARibbonBar; class Widget : public QWidget { - Q_OBJECT + Q_OBJECT public: - Widget(QWidget* parent = nullptr); - ~Widget(); + Widget(QWidget* parent = nullptr); + ~Widget(); private: - void buildRibbon(SARibbonBar* bar); - QAction* createAction(const QString& text, const QString& iconurl); + void buildRibbon(SARibbonBar* bar); + QAction* createAction(const QString& text, const QString& iconurl); +private slots: + void onRibbonThemeComboBoxCurrentIndexChanged(int index); private: - Ui::Widget* ui; - SARibbonBar* mRibbonBar { nullptr }; + Ui::Widget* ui; + SARibbonBar* mRibbonBar { nullptr }; + QComboBox* mComboTheme { nullptr }; }; #endif // WIDGET_H