Seite 1 von 1

[solved] QDockWidget

Verfasst: 27. Mai 2009 14:09
von AndiLatte
Hallo,

ich würde gerne ein Widget als DockWindow zu- bzw. wegschalten.
So wie hier ---> http://doc.trolltech.com/4.3/mainwindow ... dgets.html

Was muss ich machen, damit der unten angefügte code auch kompiliert?
QDockWidget kennt kein "addWidget". Wie umgehe ich das?

Danke für jede Hilfe!

Code: Alles auswählen

void MainWindow::createDockWindows()
{
    QDockWidget *dock = new QDockWidget(tr("UseRCam TopView"), this);
    dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
    customerList = new QListWidget(dock);
customerList->addWidget(Video);
//     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);
    addDockWidget(Qt::RightDockWidgetArea, dock);
    viewMenu->addAction(dock->toggleViewAction());
}

Re: QDockWidget

Verfasst: 27. Mai 2009 14:29
von AndiLatte
folgender Code Kompiliert - bringt aber einen Seq-fault mit sich !!

Code: Alles auswählen

void MainWindow::createDockWindows()
{
    QDockWidget *dock = new QDockWidget(tr("UseRCam TopView"), this);
    dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);

QWidget *dockWidget = new QWidget;
QHBoxLayout* dockLayout = new QHBoxLayout;
dockLayout->addWidget(Video);
dock->setWidget(dockWidget);

    addDockWidget(Qt::RightDockWidgetArea, dock);
    viewMenu->addAction(dock->toggleViewAction());
}

Re: QDockWidget

Verfasst: 27. Mai 2009 15:06
von AndiLatte
foldender code kompiliert und lässt sich starten - zeigt aber das Widget "Video" nicht an sonderneigt nur den Rahmen des DockWidgets an.

Code: Alles auswählen

Video = new ViewVideo;

    QDockWidget *dock = new QDockWidget(tr("UseRCam TopView"), this);
    dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);

QWidget *dockWidget = new QWidget;
QHBoxLayout* dockLayout = new QHBoxLayout;
dockLayout->addWidget(Video);
dock->setWidget(dockWidget);

    addDockWidget(Qt::RightDockWidgetArea, dock);
    viewMenu->addAction(dock->toggleViewAction());

Re: QDockWidget

Verfasst: 27. Mai 2009 15:58
von AndiLatte
Lösung :roll:

Code: Alles auswählen

Video = new ViewVideo;

    QDockWidget *dock = new QDockWidget(tr("UseRCam TopView"), this);
    dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
dock->setWidget(Video);
    addDockWidget(Qt::RightDockWidgetArea, dock);
    viewMenu->addAction(dock->toggleViewAction());