如何更改在Mac上打开Qt::抽屉的一侧?

如何更改在Mac上打开Qt::抽屉的一侧?,qt,macos,drawer,Qt,Macos,Drawer,你好 我有一个QDialog-myDialog并希望使用QWidget-myDrawer(&myDialog,Qt::Drawer)向其附加附加信息。这很好,只是抽屉总是连接到myDialog的左侧。我需要在右边。我不知道该怎么做 任何提示和想法都将不胜感激! 谢谢,并致以最良好的问候, Robin这通常由操作系统完成。试着把窗户移到靠近屏幕左边缘的位置,然后打开抽屉——它现在应该在右边打开了 一般来说,尽量避免使用抽屉,因为这些天来,抽屉似乎被人皱着眉头,不再是人们期望的“外观和感觉”的一部分

你好

我有一个
QDialog-myDialog
并希望使用
QWidget-myDrawer(&myDialog,Qt::Drawer)
向其附加附加信息。这很好,只是抽屉总是连接到myDialog的左侧。我需要在右边。我不知道该怎么做

任何提示和想法都将不胜感激! 谢谢,并致以最良好的问候,
Robin

这通常由操作系统完成。试着把窗户移到靠近屏幕左边缘的位置,然后打开抽屉——它现在应该在右边打开了

一般来说,尽量避免使用抽屉,因为这些天来,抽屉似乎被人皱着眉头,不再是人们期望的“外观和感觉”的一部分


更新: 抱歉-正确,它们仍然在HumanInterace指南中,但是大多数开发人员不再使用它们了。从几个董事会和IRC频道的讨论来看,他们似乎觉得“不自然”,因为他们不是“窗口”的一部分

回到你的问题上来;我怀疑你能控制抽屉从Qt滑出的那一面。此外,这可能会有所不同,这取决于你使用的是可可粉还是碳粉。至少我在Qt文档中找不到任何与此相关的内容。

demos\mainwindow项目中,mainwindow.cpp中有几行(第311-314行):

#ifndef Q_WS_MAC
    { "Black", 0, Qt::LeftDockWidgetArea },
#else
    { "Black", Qt::Drawer, Qt::LeftDockWidgetArea }
我现在无法访问OSX,但我记得我通过上述项目学会了更改抽屉的侧面。所以你可以在OSX中玩这个项目

这是可能的:

但是您必须使用QDockWidget作为Qt::Drawer小部件; 以下代码来自QMainWindow类:

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QDockWidget *drawdock = new QDockWidget(this,Qt::Drawer);
    this->addDockWidget(Qt::RightDockWidgetArea,drawdock);
}
要在运行时更改抽屉的侧面,请执行以下操作:

QMainWindow *mainWindow = qobject_cast<QMainWindow *>(this);
mainWindow->addDockWidget(Qt::BottomDockWidgetArea,drawdock);
QMainWindow*mainWindow=qobject\u cast(此);
主窗口->addDockWidget(Qt::BottomDockWidgetArea,drawdock);

这些区域可以是任何一个Hi Badcat!谢谢你的回答。尝试过-仍然在左侧打开(屏幕外)。“现在不再是预期的“外观”的一部分”>您有任何参考资料/风格指南暗示吗?抽屉仍在官方风格指南中。如果没有,请给我一个链接,这样我可以得到一个更新的官方版本。抽屉仍然在苹果UIG。但是现在它的使用越来越少了。其他平台上没有相应的小部件可能是其中的主要部分。在我看来,可停靠浮动窗更有意义。谢谢!我试过了,虽然我希望避免QDockWidget,但至少它是有效的。竖起大拇指,非常感谢!