czyt1988 / SARibbon

Ribbon Control for Qt
MIT License
1.03k stars 312 forks source link

macosx 下不显示面板 #52

Closed sunsolve closed 1 year ago

sunsolve commented 2 years ago

环境:silicon M1; macos 12.4, qt 6.2.4 ; 编译成功,但是显示不对,ribbon完全没有显示。

image

窗口的最大化、最小化、和关闭按钮也没有,看起来好像是 framelesswindow 有问题。

czyt1988 commented 2 years ago

macOS和Ubuntu都对menubar有特殊的处理,目前SARibbon是通过替换原来menubar的方式实现的,对macOS等这种有特殊的原生menubar暂不支持。这两个系统需要单独开发

longhuan2018 commented 2 years ago

在windows 10, qt 5.15.2下,UseDesginerMainWindowExample示例,也会出现该现象 image

将构造函数中的SARibbonMainWindow(parent),修改为SARibbonMainWindow(parent, false), 并在ui->setupUi(this);之后增加setRibbonTheme(ribbonTheme()); 可以解决该问题

MainWindow::MainWindow(QWidget *parent)
    : SARibbonMainWindow(parent**, false**)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

   **setRibbonTheme(ribbonTheme());**
}

image

具体原因是由于SAWindowButtonGroup在SARibbonBar之前创建导致的,但是不知道为什么会导致这种现象的出现...

yangkwch commented 1 year ago
加一句ribbon->setNativeMenuBar(false)就可以了,亲测可行。不过tab部分的字体太靠下了,不知道怎么居中。

SARibbonBar* ribbon = ribbonBar();
ribbon->setNativeMenuBar(false);
//通过setContentsMargins设置ribbon四周的间距
ribbon->setContentsMargins(5, 0, 5, 0);
//设置applicationButton
PRINT_COST("setCentralWidget & setWindowTitle");
ribbon->applicationButton()->setText(("File"));
ribbon->setRibbonStyle(SARibbonBar::WpsLiteStyle);