如何在 Qt 中创建类似 Textmate 的侧面板

Posted

技术标签:

【中文标题】如何在 Qt 中创建类似 Textmate 的侧面板【英文标题】:How to create a Textmate like side panel in Qt 【发布时间】:2012-11-10 00:59:43 【问题描述】:

如何使用 C++/Qt 在 Textmate 中创建类似于文件资源管理器的侧面板?更准确地说,如下图的左侧面板:

(来源:garzaincredible.com)

最接近我需要的似乎是QDockWidget,但我仍然不知道如何使用它。

【问题讨论】:

【参考方案1】:

这就是所谓的“抽屉”。在 Qt 中,有一个特殊的 Qt::WindowFlags 标志:Qt::Drawer。目的是在 QDockWidget 上使用这个标志:

QDockWidget* dock = new QDockWidget(parent, Qt::Drawer);

这将为停靠小部件创建一个 Cocoa 抽屉。您无需确保 Qt::Drawer 仅在 OS X 上使用;该标志在其他平台上会被忽略,因此您可以无条件指定它。

【讨论】:

非常感谢,但有没有办法让它跨平台(例如应用程序在 Linux 机器上看起来也一样)? @DodonVictor 不。这是由 Cocoa 实现的,而不是 Qt。它不能在其他平台上运行。无论如何,这不是一个好主意。人们以前从未见过的陌生的 GUI 概念大多会导致混乱。此外,在决定使用此 Mac 功能之前,您可能需要阅读这篇文章:mcelhearn.com/2006/07/29/…

以上是关于如何在 Qt 中创建类似 Textmate 的侧面板的主要内容,如果未能解决你的问题,请参考以下文章

在每个矩形中创建 9 个圆(每个角 4 个,侧面 4 个,中间 1 个)同时/立即创建一个矩形

有没有办法在 Android 的可穿戴设备中创建类似可拖动菜单的东西?

Qt:如何在 qpushbutton 中创建超链接?

如何在 QT5.6.1 中创建自定义按钮

如何在我的 Qt 窗口中创建一个“洞”?

如何在 C++ 或 Qt 中创建进程?