czyt1988 / saribbon Goto Github PK
View Code? Open in Web Editor NEWRibbon Control for Qt
License: MIT License
Ribbon Control for Qt
License: MIT License
如题所述。
Hi,
I was using this library to create ribbons for my applications and it work well, but this time I needed to add arabic language that is a right to left direction.
When setting the qApp layout direction to right to left, the categories are moving to the right, but the pannels, the appButton, and others are still on the left side, they don't follow the layaut direction.
this example is from the git, I just add the right to left direction, and this is the results.
Any help please.
找了找网上的添加pri的方法都不能用,,想问下如果不添加pri怎样在vs里面使用
是不适用与MSVC2017吗?
直接编译作者给的示例程序,发现在 4K 屏幕图标、文字非常小,甚至无法辨认。参考网络上的解决方案,我在 main 函数的添加了以下语句:
QApplication::setAttribute(Qt::AA_EnableHighDpiScaling); // DPI support QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); //HiDPI pixmaps
然后编译运行,图标和字体均可以清晰显示,但是标题栏的最小/大化键和关闭键异常的大。
具体情况如下图:
请问这种情况该如何修复。谢谢。
系统:Windows 10 1909 x64
显示屏:4K 13.3 英寸
Qt 版本:5.14.1 (MingW 7.3 x64)
Hi,
Is it possible to switch to classic menu bar?
如题。
windows11,3K屏,缩放200%,比例错误,完全不能显示。
但使用quick技术的没问题,用widget和qss的都出现比例错误。
一个Gategory中存在多个Gallery时的,针对每个gallery设置一个scretch-factor,来增强布局的美观性。
在ubuntu 下编译运行后 rabbon的菜单不显示
Hi,
Please write in english in order to understand ;)
应用这个SARibbon需要QT4\QT5的版本,可以在说明中添加吗?
为QAction设置显示名称的时候
主窗口的边框如何设置?通过qss无效果
窗口最大化,点击并拖动窗口标题栏没有反应
Hi,
Is it possible to disable horizontal scrolling in a tab?
作者您好,我看了下源代码ApplicationButton是个QPushButton,但是ribbon->applicationButton()返回的是个抽象类QAbstractButton,请问我需要利用qobject_cast<QPushButton*>(ribbon->applicationButton())->setMenu()来设置菜单吗?(使用此方法会导致右侧有个倒三角图标)
Hi,
I have an issue when i use context categories, i have 4 contexts categories i want to show only one context for a specific action, i use a list of contextCategory and for each element i call this setContextCategoryVisible() function.
The problem is that when for example i show contextA for the first time and show another context it works perfectly but when i come back to contextA this is what happens:
and i can't hide it again :'(. Can you please fix it?
现在是不支持5.14了吗?
第一种,直接使用:
setWindowIcon(QIcon(":/icon/icon/MainIcon.png"));
结果显示:
窗口左上角显示有图标,但是有两个一模一样的,还是一大一小
第二种,使用SARibbonBar的对象设置图标
SARibbonBar *ribbon = ribbonBar();//制造一个类似的QMenuBar ribbon->setRibbonStyle(SARibbonBar::RibbonStyle::OfficeStyle);//设置标题样式 ribbon->setWindowIcon(QIcon(":/icon/icon/MainIcon.png"));
结果显示:
左上角只有一个主窗口图标
求教,请问怎么解决
How can I add a SARibbon to a normal QDialog? I have added the ribbon to the main window and would like to make everything look the same by adding it to all the other windows.
窗口缩小时菜单显示不全。可否设置为自动适应窗口
I have built the solution on msvc 2022 + Qt6.3 and I have some notes:
replace qt5_wrap_cpp with qt6_wrap_cpp in cmake ;
All class that use QDesignerContainerExtension have errors (abstract class):
add bool canRemove(int index) const Q_DECL_OVERRIDE; and bool canAddWidget() const Q_DECL_OVERRIDE;
Thanks and sorry to write in english, I don't know chinese.
错误信息如下:
......\SARibbon-master\src\SARibbonBar\SARibbonCtrlContainer.cpp:65:43: error: 'class QFontMetrics' has no member named 'horizontalAdvance'
int textWidth = fontMetrics().horizontalAdvance(text);
看了一下,对应类,发现确实没有对应的成员函数。
Hi, is there any way to merge two SARibbonPannels? just push the elements from one into another. I have been looking through the source code while finding that it is kind of complicated to do so, this may be a useful function to provide in SARibbonPannel class.
Hi,
I have two themes (normal and dark), i need for each theme changing the toolbutton border color menu for example for a dark mode i want to make it white, but i can't tell to the ribbon that i'm in dark theme.
Can you please ad a function that returns the theme from the ribbon?
Thank you
Hi,
I want to remove margins of ribbon, could you please show me how?
VS2013+QT5.7.0和 VS2017+QT5.9.3均编译失败,请问您用的是什么环境
我的错误如下
1>------ 已启动生成: 项目: SARibbonBar, 配置: Release x64 ------
1> Moc'ing FramelessHelper.h...
1> Moc'ing SARibbonApplicationButton.h...
1> Moc'ing SARibbonBar.h...
1> Moc'ing SARibbonCategory.h...
1> Moc'ing SARibbonComboBox.h...
1> Moc'ing SARibbonContextCategory.h...
1> Moc'ing SARibbonControlButton.h...
1> Moc'ing SARibbonGallery.h...
1> Moc'ing SARibbonGalleryGroup.h...
1> Moc'ing SARibbonLineEdit.h...
1> Moc'ing SARibbonMainWindow.h...
1> Moc'ing SARibbonMenu.h...
1> Moc'ing SARibbonPannel.h...
1> Moc'ing SARibbonPannelOptionButton.h...
1> Moc'ing SARibbonStackedWidget.h...
1> Moc'ing SARibbonTabBar.h...
1> Moc'ing SARibbonToolButton.h...
1> Moc'ing SAWindowButtonGroup.h...
1> Rcc'ing resource.qrc...
1> FramelessHelper.cpp
1>FramelessHelper.cpp : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\FramelessHelper.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1> moc_FramelessHelper.cpp
1>c:\users\administrator\desktop\saribbon-master\src\release../FramelessHelper.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1> moc_SARibbonApplicationButton.cpp
1> moc_SARibbonBar.cpp
1>c:\users\administrator\desktop\saribbon-master\src\release../SARibbonBar.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonCategory.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonContextCategory.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1> moc_SARibbonCategory.cpp
1>c:\users\administrator\desktop\saribbon-master\src\release../SARibbonCategory.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1> moc_SARibbonComboBox.cpp
1>c:\users\administrator\desktop\saribbon-master\src\release../SARibbonComboBox.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1> moc_SARibbonContextCategory.cpp
1>c:\users\administrator\desktop\saribbon-master\src\release../SARibbonContextCategory.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonCategory.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1> moc_SARibbonControlButton.cpp
1> moc_SARibbonGallery.cpp
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonGalleryGroup.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonGalleryItem.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1> moc_SARibbonGalleryGroup.cpp
1>c:\users\administrator\desktop\saribbon-master\src\release../SARibbonGalleryGroup.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonGalleryItem.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1> moc_SARibbonLineEdit.cpp
1> moc_SARibbonMainWindow.cpp
1>c:\users\administrator\desktop\saribbon-master\src\release../SARibbonMainWindow.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1> moc_SARibbonMenu.cpp
1> moc_SARibbonPannel.cpp
1> moc_SARibbonPannelOptionButton.cpp
1>c:\users\administrator\desktop\saribbon-master\src\release../SARibbonPannelOptionButton.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1> moc_SARibbonStackedWidget.cpp
1> moc_SARibbonTabBar.cpp
1> moc_SARibbonToolButton.cpp
1> moc_SAWindowButtonGroup.cpp
1> SARibbonApplicationButton.cpp
1> 正在生成代码...
1> 正在编译...
1> SARibbonBar.cpp
1>SARibbonBar.cpp : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonBar.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonCategory.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonContextCategory.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonElementCreateDelegate.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>SARibbonBar.cpp(195): error C2039: “setContextColor”: 不是“SARibbonContextCategory”的成员
1> c:\users\administrator\desktop\saribbon-master\src\SARibbonContextCategory.h(9) : 参见“SARibbonContextCategory”的声明
1>SARibbonBar.cpp(212): error C2039: “categoryCount”: 不是“SARibbonContextCategory”的成员
1> c:\users\administrator\desktop\saribbon-master\src\SARibbonContextCategory.h(9) : 参见“SARibbonContextCategory”的声明
1>SARibbonBar.cpp(214): error C2039: “categoryPage”: 不是“SARibbonContextCategory”的成员
1> c:\users\administrator\desktop\saribbon-master\src\SARibbonContextCategory.h(9) : 参见“SARibbonContextCategory”的声明
1>SARibbonBar.cpp(287): error C2039: “createHidePannelButton”: 不是“SARibbonElementCreateDelegate”的成员
1> c:\users\administrator\desktop\saribbon-master\src\SARibbonElementCreateDelegate.h(21) : 参见“SARibbonElementCreateDelegate”的声明
1> SARibbonButtonGroupWidget.cpp
1> SARibbonCategory.cpp
1>SARibbonCategory.cpp : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonCategory.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonSeparatorWidget.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonElementCreateDelegate.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1> SARibbonCategoryLayout.cpp
1>SARibbonCategoryLayout.cpp : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonCategory.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>SARibbonCategoryLayout.cpp(122): warning C4100: “watched”: 未引用的形参
1>SARibbonCategoryLayout.cpp(279): error C2065: “j”: 未声明的标识符
1>SARibbonCategoryLayout.cpp(279): error C2228: “.second”的左边必须有类/结构/联合
1>SARibbonCategoryLayout.cpp(279): error C2228: “.adjust”的左边必须有类/结构/联合
1> SARibbonCheckBox.cpp
1> SARibbonComboBox.cpp
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonComboBox.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1> SARibbonContextCategory.cpp
1>SARibbonContextCategory.cpp : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonContextCategory.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonCategory.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonElementCreateDelegate.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>SARibbonContextCategory.cpp(30): error C2039: “addCategoryPage”: 不是“SARibbonContextCategory”的成员
1> c:\users\administrator\desktop\saribbon-master\src\SARibbonContextCategory.h(9) : 参见“SARibbonContextCategory”的声明
1>SARibbonContextCategory.cpp(33): error C3861: “parentWidget”: 找不到标识符
1>SARibbonContextCategory.cpp(36): error C2065: “m_d”: 未声明的标识符
1>SARibbonContextCategory.cpp(36): error C2227: “->categoryDataList”的左边必须指向类/结构/联合/泛型类型
1> 类型是“unknown-type”
1>SARibbonContextCategory.cpp(36): error C2228: “.append”的左边必须有类/结构/联合
1>SARibbonContextCategory.cpp(37): error C3861: “categoryPageAdded”: 找不到标识符
1>SARibbonContextCategory.cpp(41): error C2039: “categoryCount”: 不是“SARibbonContextCategory”的成员
1> c:\users\administrator\desktop\saribbon-master\src\SARibbonContextCategory.h(9) : 参见“SARibbonContextCategory”的声明
1>SARibbonContextCategory.cpp(42): error C2270: “categoryCount”: 非成员函数上不允许修饰符
1>SARibbonContextCategory.cpp(43): error C2065: “m_d”: 未声明的标识符
1>SARibbonContextCategory.cpp(43): error C2227: “->categoryDataList”的左边必须指向类/结构/联合/泛型类型
1> 类型是“unknown-type”
1>SARibbonContextCategory.cpp(43): error C2228: “.count”的左边必须有类/结构/联合
1>SARibbonContextCategory.cpp(56): error C2039: “setContextColor”: 不是“SARibbonContextCategory”的成员
1> c:\users\administrator\desktop\saribbon-master\src\SARibbonContextCategory.h(9) : 参见“SARibbonContextCategory”的声明
1>SARibbonContextCategory.cpp(58): error C2065: “m_d”: 未声明的标识符
1>SARibbonContextCategory.cpp(58): error C2227: “->contextColor”的左边必须指向类/结构/联合/泛型类型
1> 类型是“unknown-type”
1>SARibbonContextCategory.cpp(84): error C2039: “categoryPage”: 不是“SARibbonContextCategory”的成员
1> c:\users\administrator\desktop\saribbon-master\src\SARibbonContextCategory.h(9) : 参见“SARibbonContextCategory”的声明
1>SARibbonContextCategory.cpp(86): error C2065: “m_d”: 未声明的标识符
1>SARibbonContextCategory.cpp(86): error C2227: “->categoryDataList”的左边必须指向类/结构/联合/泛型类型
1> 类型是“unknown-type”
1>SARibbonContextCategory.cpp(86): error C2228: “.categoryPage”的左边必须有类/结构/联合
1> SARibbonControlButton.cpp
1> SARibbonCtrolContainer.cpp
1> SARibbonDrawHelper.cpp
1> SARibbonElementCreateDelegate.cpp
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonElementCreateDelegate.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonBar.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonCategory.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonContextCategory.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonSeparatorWidget.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonGalleryGroup.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonGalleryItem.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>SARibbonElementCreateDelegate.cpp(75): error C2039: “createHidePannelButton”: 不是“SARibbonElementCreateDelegate”的成员
1> c:\users\administrator\desktop\saribbon-master\src\SARibbonElementCreateDelegate.h(21) : 参见“SARibbonElementCreateDelegate”的声明
1> SARibbonElementManager.cpp
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonElementCreateDelegate.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1> SARibbonGallery.cpp
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonGalleryGroup.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonGalleryItem.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonElementCreateDelegate.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1> SARibbonGalleryGroup.cpp
1>SARibbonGalleryGroup.cpp : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonGalleryGroup.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonGalleryItem.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1> SARibbonGalleryItem.cpp
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonGalleryItem.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonGalleryGroup.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1> SARibbonLineEdit.cpp
1> SARibbonMainWindow.cpp
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonMainWindow.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\FramelessHelper.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonBar.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonCategory.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonContextCategory.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1> SARibbonMenu.cpp
1> SARibbonPannel.cpp
1>SARibbonPannel.cpp : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonPannelOptionButton.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonSeparatorWidget.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonGalleryGroup.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonGalleryItem.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonElementCreateDelegate.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>SARibbonPannel.cpp(40): error C2614: “SARibbonPannelPrivate”: 非法的成员初始化:“m_titleY”不是基或成员
1>SARibbonPannel.cpp(290): error C2039: “connectAction”: 不是“SARibbonPannelOptionButton”的成员
1> c:\users\administrator\desktop\saribbon-master\src\SARibbonPannelOptionButton.h(6) : 参见“SARibbonPannelOptionButton”的声明
1>SARibbonPannel.cpp(313): error C2039: “m_titleY”: 不是“SARibbonPannelPrivate”的成员
1> SARibbonPannel.cpp(18) : 参见“SARibbonPannelPrivate”的声明
1>SARibbonPannel.cpp(314): error C2661: “QPainter::drawText”: 没有重载函数接受 5 个参数
1>SARibbonPannel.cpp(318): error C2039: “m_titleY”: 不是“SARibbonPannelPrivate”的成员
1> SARibbonPannel.cpp(18) : 参见“SARibbonPannelPrivate”的声明
1>SARibbonPannel.cpp(318): error C2661: “QPainter::drawText”: 没有重载函数接受 5 个参数
1>SARibbonPannel.cpp(378): error C2039: “m_titleY”: 不是“SARibbonPannelPrivate”的成员
1> SARibbonPannel.cpp(18) : 参见“SARibbonPannelPrivate”的声明
1>SARibbonPannel.cpp(378): error C2664: “void QWidget::move(const QPoint &)”: 无法将参数 1 从“int”转换为“const QPoint &”
1> 原因如下: 无法从“int”转换为“const QPoint”
1> 无构造函数可以接受源类型,或构造函数重载决策不明确
1> SARibbonPannelOptionButton.cpp
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonPannelOptionButton.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>SARibbonPannelOptionButton.cpp(14): error C2039: “connectAction”: 不是“SARibbonPannelOptionButton”的成员
1> c:\users\administrator\desktop\saribbon-master\src\SARibbonPannelOptionButton.h(6) : 参见“SARibbonPannelOptionButton”的声明
1>SARibbonPannelOptionButton.cpp(16): error C2355: “this”: 只能在非静态成员函数或非静态数据成员初始值设定项的内部引用
1>SARibbonPannelOptionButton.cpp(16): error C3861: “connect”: 找不到标识符
1> 正在生成代码...
1> 正在编译...
1> SARibbonQuickAccessBar.cpp
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonSeparatorWidget.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1> SARibbonSeparatorWidget.cpp
1>c:\users\administrator\desktop\saribbon-master\src\SARibbonSeparatorWidget.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1> SARibbonStackedWidget.cpp
1> SARibbonTabBar.cpp
1> SARibbonToolButton.cpp
1>SARibbonToolButton.cpp : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>SARibbonToolButton.cpp(183): error C2181: 没有匹配 if 的非法 else
1>SARibbonToolButton.cpp(200): error C2059: 语法错误:“else”
1>SARibbonToolButton.cpp(203): error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>SARibbonToolButton.cpp(203): error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>SARibbonToolButton.cpp(215): error C2059: 语法错误:“else”
1>SARibbonToolButton.cpp(216): error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>SARibbonToolButton.cpp(216): error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>SARibbonToolButton.cpp(234): error C2059: 语法错误:“if”
1>SARibbonToolButton.cpp(237): error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>SARibbonToolButton.cpp(237): error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>SARibbonToolButton.cpp(244): error C2065: “p”: 未声明的标识符
1>SARibbonToolButton.cpp(244): error C2065: “opt”: 未声明的标识符
1>SARibbonToolButton.cpp(244): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>SARibbonToolButton.cpp(244): error C2078: 初始值设定项太多
1>SARibbonToolButton.cpp(246): error C2059: 语法错误:“}”
1>SARibbonToolButton.cpp(246): error C2143: 语法错误 : 缺少“;”(在“}”的前面)
1>SARibbonToolButton.cpp(249): error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>SARibbonToolButton.cpp(249): error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>SARibbonToolButton.cpp(329): error C2059: 语法错误:“else”
1>SARibbonToolButton.cpp(332): error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>SARibbonToolButton.cpp(332): error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>SARibbonToolButton.cpp(344): error C2059: 语法错误:“else”
1>SARibbonToolButton.cpp(345): error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>SARibbonToolButton.cpp(345): error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>SARibbonToolButton.cpp(365): error C2059: 语法错误:“if”
1>SARibbonToolButton.cpp(368): error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>SARibbonToolButton.cpp(368): error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>SARibbonToolButton.cpp(378): error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>SARibbonToolButton.cpp(396): error C2065: “p”: 未声明的标识符
1>SARibbonToolButton.cpp(396): error C2065: “opt”: 未声明的标识符
1>SARibbonToolButton.cpp(396): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>SARibbonToolButton.cpp(396): error C2374: “drawIconAndLabel”: 重定义;多次初始化
1> SARibbonToolButton.cpp(244) : 参见“drawIconAndLabel”的声明
1>SARibbonToolButton.cpp(396): error C2078: 初始值设定项太多
1>SARibbonToolButton.cpp(397): error C2059: 语法错误:“}”
1>SARibbonToolButton.cpp(397): error C2143: 语法错误 : 缺少“;”(在“}”的前面)
1>SARibbonToolButton.cpp(400): error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>SARibbonToolButton.cpp(400): error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>SARibbonToolButton.cpp(412): error C2065: “label”: 未声明的标识符
1>SARibbonToolButton.cpp(412): error C2228: “.state”的左边必须有类/结构/联合
1> 类型是“unknown-type”
1>SARibbonToolButton.cpp(413): error C2065: “label”: 未声明的标识符
1> SAWindowButtonGroup.cpp
1>SAWindowButtonGroup.cpp : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1> 正在生成代码...
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
Hi,
SARibbonBar is a great plugin, i love it :)
How can i show the menu when i click on application button?
thanks
in CMakeLists.txt
find_package(Qt6 COMPONENTS Core Widgets GUI) if (NOT Qt6_FOUND) find_package(Qt5 5.15 REQUIRED COMPONENTS Core Widgets GUI) set(Qt_VERSION_MAJOR 5) else() set(Qt_VERSION_MAJOR 5) endif()
in src/SARibbonBar/CMakeLists.txt
target_link_libraries(${LIB_NAME} Qt${QT_VERSION_MAJOR}::Widgets)
不知是不是我没找到对应的接口,我只看到有insert接口,
SARibbonCategory* insertCategoryPage(const QString& title, int index);
void insertCategoryPage(SARibbonCategory* category, int index);
void SARibbonBar::insertCategoryPage(SARibbonCategory* category, int index)
{
if (nullptr == category) {
return;
}
category->setRibbonPannelLayoutMode(isTwoRowStyle() ? SARibbonPannel::TwoRowMode : SARibbonPannel::ThreeRowMode);
int i = m_d->_ribbonTabBar->insertTab(index, category->windowTitle());
_SARibbonTabData tabdata;
tabdata.category = category;
tabdata.index = i;
m_d->_ribbonTabBar->setTabData(i, QVariant::fromValue(tabdata));
m_d->_stackedContainerWidget->insertWidget(index, category);
connect(category, &QWidget::windowTitleChanged, this, &SARibbonBar::onCategoryWindowTitleChanged);
QApplication::postEvent(this, new QResizeEvent(size(), size()));
}
但是这个接口的方式利用的是tabbar和stack widget的插入功能,单单只通过index索引是无法有效控制插入顺序的,例如,定义category1的索引为20,category2的索引为21,但在无法确定category1和category2的插入谁先进行时,还是无法保证这两个category谁在前,因为如果他们都超过的容器的size那将都添加到最后,这种情况在独立插件或模块中使用时比较明显,介于此我在本地代码中加入了排序功能,我的思路是给category添加了ID属性,用ID的大小来计算索引,
...
//通过ID判断插入顺序
int index;
auto listCategoryPages = CategoryPages();
if(listCategoryPages.isEmpty())
{
index = d->ribbonTabBar->insertTab(0, category->windowTitle());
}
else
{
bool bFind = false;
for(auto c : listCategoryPages)
{
if(c->CategoryID() > category->CategoryID())
{
index = listCategoryPages.indexOf(c);
bFind = true;
break;
}
}
//没找到说明最大,插入到最后
if(!bFind)
{
index = d->ribbonTabBar->insertTab(listCategoryPages.size(), category->windowTitle());
}
else
{
index = d->ribbonTabBar->insertTab(index, category->windowTitle());
}
}
category->SetRibbonPannelLayoutMode(IsTwoRowStyle() ? RibbonPannel::TwoRowMode : RibbonPannel::ThreeRowMode);
...
这样一来ID也不必连续,也方便新添加的category定义ID,通常每个ID之间都会有10或100的间距,给后续的category以空间。
希望可以改善此功能,快捷区那里是一样的道理,
void SARibbonButtonGroupWidget::actionEvent(QActionEvent* e)
这里我就简单在添加时给QAction::setData()了;目的都是添加一个ID
功能非常不错,插件可以用于Ubuntu下吗?
谢谢
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.