[gelöst] [Qt4]QDockWidget wird nicht angezeigt

Alles rund um die Programmierung mit Qt
Antworten
terror666
Beiträge: 11
Registriert: 28. September 2005 15:04

[gelöst] [Qt4]QDockWidget wird nicht angezeigt

Beitrag 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?
Zuletzt geändert von terror666 am 29. September 2005 16:24, insgesamt 1-mal geändert.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Re: [Qt4]QDockWidget wird nicht angezeigt

Beitrag 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);
terror666
Beiträge: 11
Registriert: 28. September 2005 15:04

Beitrag 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)?
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag 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.
terror666
Beiträge: 11
Registriert: 28. September 2005 15:04

Beitrag 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?
Zuletzt geändert von terror666 am 29. September 2005 15:11, insgesamt 1-mal geändert.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag 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.
Dateianhänge
toolbox.jpg
toolbox.jpg (24.66 KiB) 4087 mal betrachtet
terror666
Beiträge: 11
Registriert: 28. September 2005 15:04

Beitrag 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
Antworten