void MainWindow::CreateDockWidgets()
{
dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
<< "John Doe, Harmony Enterprises, 12 Lakeside, Ambleton"
<< "Jane Doe, Memorabilia, 23 Watersedge, Beaton"
<< "Tammy Shea, Tiblanka, 38 Sea Views, Carlton"
<< "Tim Sheen, Caraba Gifts, 48 Ocean Way, Deal"
<< "Sol Harvey, Chicos Coffee, 53 New Springs, Eccleston"
<< "Sally Hobart, Tiroli Tea, 67 Long River, Fedula");
dock->setWidget(customerList);
dock
->setFeatures
(dock
->features
() & ~
QDockWidget::DockWidgetFloatable);
addDockWidget(Qt::RightDockWidgetArea, dock);
viewMenu->addAction(dock->toggleViewAction());
connect(dock, SIGNAL(topLevelChanged(bool)) , this, SLOT(dragStarted(bool)));
connect(dock, SIGNAL(dockLocationChanged (Qt::DockWidgetArea)) , this, SLOT(dragEnded()));
//... more dock widgets
}
void MainWindow::dragStarted(bool started)
{
if(started)
{
if(QDockWidget* dock
= qobject_cast<QDockWidget
*>
(sender
())) dw = dock;
else
dw = NULL;
}
}
void MainWindow
::enterEvent(QEvent* event
) {
if(dw && dw->parent() != this)
{
addDockWidget(Qt::RightDockWidgetArea, dw);
dw = NULL;
}
}
void MainWindow::dragEnded()
{
dw = NULL;
}
static QDockWidget* dw = NULL;
void MainWindow::CreateDockWidgets()
{
QDockWidget *dock = new QDockWidget(tr("Customers"), this);
dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
customerList = new QListWidget(dock);
customerList->addItems(QStringList()
<< "John Doe, Harmony Enterprises, 12 Lakeside, Ambleton"
<< "Jane Doe, Memorabilia, 23 Watersedge, Beaton"
<< "Tammy Shea, Tiblanka, 38 Sea Views, Carlton"
<< "Tim Sheen, Caraba Gifts, 48 Ocean Way, Deal"
<< "Sol Harvey, Chicos Coffee, 53 New Springs, Eccleston"
<< "Sally Hobart, Tiroli Tea, 67 Long River, Fedula");
dock->setWidget(customerList);
dock->setFeatures(dock->features() & ~QDockWidget::DockWidgetFloatable);
addDockWidget(Qt::RightDockWidgetArea, dock);
viewMenu->addAction(dock->toggleViewAction());
connect(dock, SIGNAL(topLevelChanged(bool)) , this, SLOT(dragStarted(bool)));
connect(dock, SIGNAL(dockLocationChanged (Qt::DockWidgetArea)) , this, SLOT(dragEnded()));
//... more dock widgets
}
void MainWindow::dragStarted(bool started)
{
if(started)
{
if(QDockWidget* dock = qobject_cast<QDockWidget*>(sender()))
dw = dock;
else
dw = NULL;
}
}
void MainWindow::enterEvent(QEvent* event)
{
if(dw && dw->parent() != this)
{
addDockWidget(Qt::RightDockWidgetArea, dw);
dw = NULL;
}
}
void MainWindow::dragEnded()
{
dw = NULL;
}
To copy to clipboard, switch view to plain text mode
Bookmarks