【发布时间】:2016-05-02 00:10:10
【问题描述】:
我有一个QDockWidget 类和一个QMainWindow:
// docker.hpp
class Docker : public QDockWidget
{
Q_OBJECT
public:
Docker(QString title, QWidget* parent = 0);
}
// docker.cpp
Docker::Docker(QString title, QWidget* parent): QDockWidget(title, parent)
{
QWidget* widget = new QWidget(this);
widget.setMinimumSize(200, 200);
setWidget(widget);
widget->setStyleSheet("border:5px solid gray;");
setAllowedAreas(Qt::AllDockWidgetAreas);
}
// mainwindow.hpp
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget* parent);
private slots:
void createDockers();
};
// mainwindow.cpp
MainWindow::MainWindow(QWidget* parent): QMainWindow(parent)
{
setDockOptions(dockOptions() |
QMainWindow::AllowTabbedDocks |
QMainWindow::GroupedDragging);
// The following line of code does not change the situation.
// setTabPosition(Qt::RightDockWidgetArea, QTabWidget::East);
// There are some other codes which connect a button to the void createDockers() method
}
void createDockers()
{
Docker* dock = new Docker("Docker", this);
dock->setFloating(true);
dock->show();
}
但是,当我将一个 QDockWidget 拖到另一个上时,边框消失并且没有标签显示:
我预计会发生以下情况:(通过产生几个QDockWidgets 来实现)
我还注意到QDockWidgets 之一并没有消失。相反,它合并回MainWindow。只有当他们是“前两个”QDockWidgets 时才会发生这种情况。
是什么导致了这个问题以及如何解决它?我正在尝试模仿this project。
【问题讨论】:
标签: c++ qt user-interface qdockwidget qt5.6