QTreeWidget in QDockWidget lässt die Size eklig verändern

Alles rund um die Programmierung mit Qt
Antworten
forgoden
Beiträge: 120
Registriert: 10. Februar 2008 17:52

QTreeWidget in QDockWidget lässt die Size eklig verändern

Beitrag von forgoden »

Hallo,

ich hab QTreeWidget in QDockWidget erzeugt. Dadurch wird die Fenstergröße von QDockWidget verändert. Es ist glaub ich die Standardgröße von QTreeWidget.

Ich will aber wieder die ursprüngliche Größe, etwa ~145pixel wight

mit resize schon versucht.
Mit setMaximumSize kann man es zwar erzwingen, aber dann kann der Anwender es nicht größer machen.

Der code sieht so aus:

Code: Alles auswählen

	dockWidgetObjectManager = new QDockWidget(this);
    dockWidgetContentsObjectManager = new QTreeWidget();


dockWidgetObjectManager->setWindowTitle(QApplication::translate("MainWindowClass", "Objekt-Manager", 0, QApplication::UnicodeUTF8));
	dockWidgetObjectManager->setWidget(dockWidgetContentsObjectManager);
    addDockWidget(Qt::LeftDockWidgetArea, dockWidgetObjectManager);

folgendes geht nicht:

dockWidgetContentsObjectManager->resize(145,145);
dockWidgetObjectManager->resize(145,145);
Win7, VisualStudio 2010, Qt 4.7
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Warum gerade 145 Pixel, wo kommt diese Zahl her?
forgoden
Beiträge: 120
Registriert: 10. Februar 2008 17:52

Beitrag von forgoden »

die hab ich ausgewählt, damit die Breite etwa so ausschaut wie im Projektmappen-Explorer z.b.
Win7, VisualStudio 2010, Qt 4.7
forgoden
Beiträge: 120
Registriert: 10. Februar 2008 17:52

Beitrag von forgoden »

wieso funktioniert das auch nicht?

treeWidget->setColumnWidth(0,40);

wenn nur eine Spalte ist.
Immer nur nachträglich mit der Hand???

wieso ist so etwas banales in qt nicht zu erreichen?
Win7, VisualStudio 2010, Qt 4.7
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Und wenn ich jetzt soetwas banales wie die Schriftgröße von meinem System ändere, passen die 145 Pixel auch noch?
forgoden
Beiträge: 120
Registriert: 10. Februar 2008 17:52

Beitrag von forgoden »

Was willst du damit sagen? Es gibt schon eine Lösung. Mit QResizeEvent von geerbten QDockWidget auf setGeometry von QTreeWidget connecten. Aber es ist ein Umweg und ist behindert...
Win7, VisualStudio 2010, Qt 4.7
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Das Vorhaben an sich ist völlig unnötig und der connect wird auch nicht funktionieren.
forgoden
Beiträge: 120
Registriert: 10. Februar 2008 17:52

Beitrag von forgoden »

doch auf slot geht es schon


private slots:

Code: Alles auswählen

void MainWindow::setsize(QSize size) {
	treeWidget->setGeometry(0,0,size.width(), size.height()-20);
}
geerbte QDockWidget Methode

Code: Alles auswählen

void DockWidgetOM::resizeEvent(QResizeEvent *event) {
	emit status_size(this->size());
}
mainwindow

Code: Alles auswählen

connect( dockWidgetObjectManager, SIGNAL( status_size(QSize)), this, SLOT(setsize(QSize)));
dockWidgetObjectManager ist der geerbte QDockWidget (DockWidgetOM) welchem treeWidget trägt.
Win7, VisualStudio 2010, Qt 4.7
Antworten