标题栏的QDockWidget内容错误

时间:2012-10-29 00:32:07

标签: qt position qdockwidget

这是我的问题:我创建了一个QDockWidget并在其中放置了一个QGraphicsView,而它正在浮动一切正确显示,但如果将它停靠在某处,我的内容的起始X和Y位于QDockWidget的标题栏上。显然,它应该在:

tilesetWindow = new QDockWidget(tr("Tileset"), this);
tilesetWindow->setMinimumSize(256,256);
tilesetWindow->setFloating(true);
connect(tilesetWindow, SIGNAL(visibilityChanged(bool)), this, SLOT(triggeredTileset()));

tilesetViewer = new QGraphicsView(tilesetWindow);
tilesetViewer->resize(256,256);
tilesetViewer->show();

用于说明这一点的图片:http://img86.xooimage.com/files/d/7/6/problem-391a96a.png

我试图将QGraphicsView放在一个容器中,然后放在QDockWidget中但是具有与上面相同的结果。它是我为QDockWidget编写代码的唯一地方。

如何在停靠时将它从正确的位置开始?

编辑:

我尝试了一个新的QtProject并在其中创建了一个带有QTextBrowser的QDockWidget并且有同样的错误:

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QDockWidget *dock = new QDockWidget(this, 0);
    dock->setFloating(true);

    QTextBrowser *t = new QTextBrowser(dock);
    t->show();
}

我想错过的东西......

Qt Creator 2.4.1 基于Qt 4.7.4(32位)

1 个答案:

答案 0 :(得分:0)

将QDockWidget设置为Parent之后,您还需要将QDockWidget的Widget设置为QGraphicsView或任何其他所需的。

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);

QDockWidget *dock = new QDockWidget(this, 0);
dock->setFloating(true);

QTextBrowser *t = new QTextBrowser(dock);
dock->setWidget(t);
}