Mac QT统一工具栏中选中的工具栏按钮与标题栏边框之间的间隙需要减少为零

Posted

技术标签:

【中文标题】Mac QT统一工具栏中选中的工具栏按钮与标题栏边框之间的间隙需要减少为零【英文标题】:Gap between checked toolbar button in Mac QT unified toolbar and titlebar border need to be reduced to ZERO 【发布时间】:2012-05-07 09:52:52 【问题描述】:

在mac中,创建了一个统一的带有标题栏的mac工具栏。 还将工具按钮样式设置为 textundericon。但是在选中或按下工具栏按钮时,发现工具栏按钮和标题栏边框之间存在间隙。

希望有人能将差距缩小到零。

附上窗口截图

谢谢

即使在调整添加到工具栏的工具按钮的大小后,工具栏边框和工具按钮之间的空间也不会减少。有什么线索吗?

【问题讨论】:

【参考方案1】:

我从未使用 Qt 专门为 Mac 开发过,但我通常调用 QWidget::setContentsMargins(int left, int top, int right, int bottom) 并将适当的参数设置为零。在这种情况下,您可以尝试为 QToolBar 调用 setContentsMargins(x,x,x,0) 并查看结果,其中 x 是您选择的值。 IIRC,我认为 11 是 QWidget 的默认边距间距,但对于QToolBar,它可能会有所不同(从屏幕截图来看,确实看起来不同),您可以尝试一下,看看您是否得到了您正在尝试的外观去实现。

我还使用了类似的方法来成功调整QLayout 子类中的间距。

【讨论】:

这种方法对您有帮助吗?如果是这样,请将问题标记为已回答。如果没有,也许我们可以再试一次:)。 不,即使我尝试使用 setContentsMargin 作为工具栏和工具按钮,同样的问题仍然存在。 在 Windows 上,您可以为 setContentsMargins(...) 的下边距提供负值,它将消除间隙。尽管这种方法对我来说充其量是骇人听闻的。不过,我只是对其进行了测试,实际上它确实可以在 Windows 下工作。我假设 OS X 统一工具栏的行为将相同,但我不确定。尝试像 QToolBar::setContentsMargins(0,0,0,-4) 之类的东西,看看它会带给你什么。请记住,0 可以是任何东西。请注意,如果您将工具栏移到窗口的另一侧,这种方法将无法使用。不过,使用统一的工具栏可能并不重要。 感谢 Eli,但是为了实现这一点,我们在这里缺少一些隐藏的东西。我们很快就会找到它...

以上是关于Mac QT统一工具栏中选中的工具栏按钮与标题栏边框之间的间隙需要减少为零的主要内容,如果未能解决你的问题,请参考以下文章

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

如何使用 Qt Creator 将按钮单击信号(“触发”信号)与工具栏中的用户按钮的动作/插槽功能连接起来?

Qt Jambi (Qt4Dotnet):区分插槽中的信号发射器

Qt 5 Mac 工具栏问题

统一开发环境,qt pro转vs工程的便捷工具

Mac Catalyst 中的透明工具栏