如何更改Qt :: Drawer在Mac上打开的一面?

时间:2011-03-11 11:47:43

标签: qt macos drawer

问候!

我有QDialog myDialog;并希望使用QWidget myDrawer( &myDialog, Qt::Drawer )向其附加其他信息。这很好,除了抽屉总是附着在myDialog的左侧。我需要它在右侧。我不知道该怎么做。

任何提示和想法将不胜感激! 谢谢,最好的问候, 罗宾

2 个答案:

答案 0 :(得分:1)

这通常由操作系统完成。尝试将窗口移近靠近屏幕左边缘并打开抽屉 - 它现在应该在右侧打开。

一般来说,尽量避免使用抽屉,因为它们似乎不再受欢迎,现在不再是预期的“外观和感觉”的一部分了。


更新

抱歉 - 正确,他们仍在人类互动指南中,但大多数开发人员不再使用它们。通过对几个委员会和IRC频道的讨论,似乎他们觉得“不自然”,因为他们不是“窗口”的一部分。

回到你的问题;我怀疑你能控制抽屉从Qt滑出的那一面。另外,它可能会有所不同,具体取决于您使用的是Cocoa还是Carbon-Qt。至少我在Qt文档中找不到任何相关内容。

答案 1 :(得分:0)

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

#ifndef Q_WS_MAC
    { "Black", 0, Qt::LeftDockWidgetArea },
#else
    { "Black", Qt::Drawer, Qt::LeftDockWidgetArea }

我现在无法访问OS X,但我记得我学会了通过上述项目改变抽屉的侧面。所以你可以在OS X中使用这个项目。

这是可能的: on right bottom

但你必须使用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);

这些区域可以是DockWidgetAreas

中的任何一个