问候!
我有QDialog myDialog;
并希望使用QWidget myDrawer( &myDialog, Qt::Drawer )
向其附加其他信息。这很好,除了抽屉总是附着在myDialog的左侧。我需要它在右侧。我不知道该怎么做。
任何提示和想法将不胜感激! 谢谢,最好的问候, 罗宾
答案 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中使用这个项目。
这是可能的:
但你必须使用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
中的任何一个