Seite 1 von 1
[gelöst] QDockWidget und QtDesigner
Verfasst: 19. November 2009 14:42
von sea_bear
Moin moin!
Ich versuche mit Hilfe des QtDesigners in einem MainWindow ein QDockWidget zu erstellen. Leider schaffe ich es nicht, dass ich
a) das Widget mit der Maus herauslösen kann
b) wenn ich es herausgelöst habe, es nicht bewegen kann.
Wie muss ich vorgehen damit es klappt?
Ich würde das ganze gerne mit QtDesigner machen, da ich sehr viele Forms erstellen muss und ich so einfach im Vorfeld schon viel besser sehen kann wie es später aussehen wird.
Bin für jeden Tipp dankbar.
Tobias
Re: QDockWidget und QtDesigner
Verfasst: 19. November 2009 17:43
von sea_bear
Ich habe raus bekommen woran es liegt. QtDesigner produziert einen falschen Code! Er fügt das QDockWidget an der falschen Stelle ein und deswegen kann es nicht funktionieren. Mich würde nun interessieren, ob andere das gleiche Problem haben. Anbei einmal den falschen (von QtDesigner) und den richtigen Code (von mir korrigiert). QtDesigner fügt das QDockWidget beim centralWidgt ein, während es korrekt beim MainWindow wäre.
QtDesigner:
Code: Alles auswählen
if (MainWindow->objectName().isEmpty())
MainWindow->setObjectName(QString::fromUtf8("MainWindow"));
MainWindow->resize(466, 324);
centralwidget = new QWidget(MainWindow);
centralwidget->setObjectName(QString::fromUtf8("centralwidget"));
dockWidget = new QDockWidget(centralwidget);
dockWidget->setObjectName(QString::fromUtf8("dockWidget"));
dockWidget->setGeometry(QRect(320, 80, 120, 80));
dockWidgetContents = new QWidget();
dockWidgetContents->setObjectName(QString::fromUtf8("dockWidgetContents"));
dockWidget->setWidget(dockWidgetContents);
MainWindow->setCentralWidget(centralwidget);
menubar = new QMenuBar(MainWindow);
menubar->setObjectName(QString::fromUtf8("menubar"));
menubar->setGeometry(QRect(0, 0, 466, 27));
MainWindow->setMenuBar(menubar);
statusbar = new QStatusBar(MainWindow);
statusbar->setObjectName(QString::fromUtf8("statusbar"));
MainWindow->setStatusBar(statusbar);
Von mir korrigiert:
Code: Alles auswählen
if (MainWindow->objectName().isEmpty())
MainWindow->setObjectName(QString::fromUtf8("MainWindow"));
MainWindow->resize(466, 324);
centralwidget = new QWidget(MainWindow);
centralwidget->setObjectName(QString::fromUtf8("centralwidget"));
MainWindow->setCentralWidget(centralwidget);
menubar = new QMenuBar(MainWindow);
menubar->setObjectName(QString::fromUtf8("menubar"));
menubar->setGeometry(QRect(0, 0, 466, 27));
MainWindow->setMenuBar(menubar);
statusbar = new QStatusBar(MainWindow);
statusbar->setObjectName(QString::fromUtf8("statusbar"));
MainWindow->setStatusBar(statusbar);
dockWidget = new QDockWidget(MainWindow);
dockWidget->setObjectName(QString::fromUtf8("dockWidget"));
dockWidgetContents = new QWidget();
dockWidgetContents->setObjectName(QString::fromUtf8("dockWidgetContents"));
dockWidget->setWidget(dockWidgetContents);
MainWindow->addDockWidget(static_cast<Qt::DockWidgetArea>(1), dockWidget);
Ich nutze QtDesigner V 4.4.3 unter OpenSuSE 11.1 auf einer 64Bit Maschine.
Würde mich freuen, wenn es mal jemand auf seiner Maschine überprüfen könnte.
Tobias
Verfasst: 20. November 2009 08:57
von archer
Hast du im Designer mal mit den Einstellungen des DockWidgets gespielt?
Features, Areas und Floating?
Verfasst: 20. November 2009 09:18
von sea_bear
archer hat geschrieben:Hast du im Designer mal mit den Einstellungen des DockWidgets gespielt?
Features, Areas und Floating?
Ja, hatte alles ausprobiert, lag aber nicht daran.
Ich habe ein Systemupdate durchgeführt und habe nun den QtDesigner in Version 4.5.3 Hier funktioniert es nun wieder alles perfekt. Scheint wirklich nur ein Bug in der einen Version 4.4.3 gewesen zu sein. Leider hat sich anscheinend bei meinem Update irgendwas mit dem Qt Style verschoben. Alle Fenster und Bedienelemente sehen auf einmal echt grässlich aus. Mal sehen wie ich das wieder hin bekomme.
Tobias
OpenSuSE 11.1 64Bit
Kdevelop 3.5.3
QtDesigner 4.5.3