Seite 1 von 1
[gelöst] [Qt4]QDockWidget wird nicht angezeigt
Verfasst: 28. September 2005 15:10
von terror666
OS: WinXP
Compiler: MinGW32
ich möchte meinem MainWindow ein QDockWindget hinzufügen. dazu haben ich meiner MainWindow-Klasse die Methode createToolbox "spendiert"
Code: Alles auswählen
void MainWindow::createToolbox()
{
Toolbox = new QDockWidget(tr("Toolbox"),this);
Toolbox->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
addDockWidget(Qt::LeftDockWidgetArea,Toolbox);
toolboxTabs = new QTabWidget(Toolbox);
toolboxTabs->addTab(editorList.last(),"test");
Toolbox->setWidget(toolboxTabs);
}
das ganze wird auch ohne probleme kompiliert, aber im programm wird das DockWidget nicht angezeigt.
Woran könnte das liegen?
Re: [Qt4]QDockWidget wird nicht angezeigt
Verfasst: 29. September 2005 07:30
von macman
terror666 hat geschrieben:das ganze wird auch ohne probleme kompiliert, aber im programm wird das DockWidget nicht angezeigt.
Meine DockWidgets lege ich etwas anders an. Probier es mal so:
Code: Alles auswählen
ToolBox = new QDockWidget(tr("Auswahl"));
ToolBox->setFeatures( QDockWidget::DockWidgetClosable |
QDockWidget::DockWidgetFloatable |
QDockWidget::DockWidgetMovable);
addDockWidget(Qt::AllDockWidgetAreas, ToolBox);
Verfasst: 29. September 2005 10:56
von terror666
@macman: hat leider nichts gebracht, hmm.
hab die ganze sachen mal auf meinen ftp gestellt, vlt. hilft das ja das problem zu finden
editor.7z
PS: @macman: könntest du mir evtl. ein funktionierendes DockWidget-Example geben (bei den Qt-Examples ist ja leider nix mit DockWidgets dabei)?
Verfasst: 29. September 2005 11:39
von macman
terror666 hat geschrieben:hab die ganze sachen mal auf meinen ftp gestellt, vlt. hilft das ja das problem zu finden
Hier funktioniert es, nachdem ich die letzten beiden Zeilen in createToolbox auskommentiert habe. Das zeigt wieder eine Schwäche der derzeitigen Qt-Version

Du fragst da editorList.last() ab, aber editorList ist noch leer. Qt3 hätte hier wohl NULL zurück gegeben, Qt4 gibt einen Debug Error. Du mußt also selbst erst prüfen, ob editorList leer ist, bevor Du das letzte Element holst. Und bevor du das Element an die ToolboxTabs anfügst, solltest Du es auch auf Validität prüfen.
Jedenfalls habe ich hier eine Toolbox an der linken Seite, getestet mit Qt 4.0.1 und 4.1.0.
Verfasst: 29. September 2005 15:01
von terror666
hmm, ich hab die besagten zeilen jetzt mal entfernt aber das ergebniss ist das selbe. das QDockWidget wird einfach nicht angezeigt.
PS: hab jetzt testweise mal n DockWidget in das application-example von qt eingebaut und siehe da es klappt. nur warum klappt es dann in meinem prog nich?
Verfasst: 29. September 2005 15:10
von macman
terror666 hat geschrieben:hmm, ich hab die besagten zeilen jetzt mal entfernt aber das ergebniss ist das selbe. das QDockWidget wird einfach nicht angezeigt.
Dann weiß ich auch nicht. Ich habe nur createToolbox angepasst, alles andere ist unberührt.
Code: Alles auswählen
void MainWindow::createToolbox()
{
Toolbox = new QDockWidget(tr("Toolbox"));
Toolbox->setFeatures( QDockWidget::DockWidgetClosable |
QDockWidget::DockWidgetFloatable |
QDockWidget::DockWidgetMovable);
//Toolbox->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
addDockWidget(Qt::AllDockWidgetAreas,Toolbox);
toolboxTabs = new QTabWidget(Toolbox);
if (!editorList.isEmpty())
{
QTextEdit* te = editorList.last();
if (te)
toolboxTabs->addTab(te,"test");
}
Toolbox->setWidget(toolboxTabs);
}
Das Ergebnis sieht so aus.
Verfasst: 29. September 2005 15:24
von terror666
ok, es funzt doch. irgendwie hat er anscheinend die exe-datei nicht überschrieben (ist mir ebend aufgefallen da das datum der exe nicht stimmte). exe von hand gelöscht und siehe da es klappt
danke für die hilfe macman