Qt 5 Mac 工具栏问题

Posted

技术标签:

【中文标题】Qt 5 Mac 工具栏问题【英文标题】:Qt 5 Mac toolbar woes 【发布时间】:2014-02-18 14:21:28 【问题描述】:

我正在尝试使用 Qt 5.2.1 在 Mac 上的 QMainWindow 中制作一个非常简单的工具栏,但一点都不满意。我仍在使用 Qt 4.8,但我想我会尝试一下 Qt5。

就 QtMacExtras 而言,我不再找到本机工具栏类,除了在私有标题中。所以我尝试了一个简单的QToolbar。

我有一个非常基本且愚蠢的工具栏:

setUnifiedTitleAndToolBarOnMac(true);

toolbar_ = new QToolBar(this);

toolbar_->setMovable(false);
toolbar_->setFloatable(false);
toolbar_->addAction("h");
toolbar_->addAction("w");
toolbar_->addSeparator();
toolbar_->addAction("f");

如您所见,嗯,这是不可接受的。

是否有任何机会,通过某种神秘而奇怪的方式,我可以在 Mac 上拥有一个统一的或更好的“原生外观”工具栏?

【问题讨论】:

您似乎没有将工具栏添加到布局中,对吧? 好吧,我从来没有将工具栏添加到主窗口的布局中......它总是在 Qt 4.x(及之前)上工作。你认为这是问题所在吗? 你从来没有说过它是一个 QMainWindow :) 当然,它应该在主窗口上工作。 对不起!:) 是的,它在 QMainWindow 中,所以我认为我应该放弃 Qt5,不是吗? 我认为你不应该放弃任何东西,你可以提交一个错误,你可以尝试调试它:) 【参考方案1】:

QMainWindow::addToolBar(QToolBar *toolbar) 应该这样做。

NSToolbar 不构成 Qt 小部件层次结构的一部分,因此您从主窗口到工具栏的令人钦佩的惯用父母身份会议完全符合规范,但显然令人不满意。

但是,正如 Trolls 在 QMainWindow 文档中所说:

“您使用 addToolBar() 将工具栏添加到主窗口。”

这里是rsync client for Mac所示的效果。

【讨论】:

【参考方案2】:

我没有带我的 mac,否则我会对此进行快速测试。在浏览 Mac 仍有多少错误报告时,我感到很惊讶。我确实找到了this 文章,它似乎有更好看的工具栏。

【讨论】:

是的,2011 年已经很老了。哪些变化会赋予它更好的“外观和感觉”? IYO 例如,跨越整个窗口长度将是首要问题。由于它在 Mac 上显示为“cut”,我开始认为 Qt5 还没有准备好,我会切换回 Qt4,但很难找到 Qt 的替代品。

以上是关于Qt 5 Mac 工具栏问题的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Qt 的 Mac OS X 工具窗口中删除最大化按钮

如何使用qt在mac中使标签窗口从顶部滑动?

Mac OSX 10.9 上的 Qt 部署

Mac 上的 Xcode 工具支持 c++11?

未找到有效套件 - Mac

Qt6网络抓包工具项目实战2.8MAC帧ARPTCPIPV4IPV6UDPICMP协议结构体汇总