Widget automatisch verkleinern??? [gelöst]

Alles rund um die Programmierung mit Qt
Antworten
Hulk2442
Beiträge: 115
Registriert: 10. Januar 2007 13:44

Widget automatisch verkleinern??? [gelöst]

Beitrag von Hulk2442 »

Hi

Habe eigentlich ein sehr simples Problem zu welche ich irgendwie kein Lösung finde!

Ich erzeuge eine Widget welches sich dynamisch der Größe des Inhalts anpassen soll!
Ablauf:
  • 1) Start nur der Button ist sichtbar
    2) Button wird betätigt und der Inhalt welcher auf „hide“ gesetzt war wird mittels „show“ eingeblendet
    2.1) Das Widget streckt sich und passt sich automatisch dem dargestelltem Inhalt an
    3) Button wird noch einmal betätigt und das Inhalt wird mittels „hide“ versteckt.
    3.1) PROBLEM: Das Widget bleibt vergrößert trotz dessen das nur der Button angezeigt wird.
Die Inhalte sollen in der Zukunft dieser Software Dynamisch zusammengestellt werden wodurch eine fixe Größe nicht (ohne erheblich Mehraufwand) so leicht zu ermitteln ist.

FRAGE: Gibt es einen Befehl so das ich dem Widget, oder dem Layout welches dem Widget zugewiesen wurde, mitteile das es sich wieder verkleinert???

Code: Alles auswählen

void CAdminWindow::createWindow()
{
	pConfigButton = new QToolButton;
	pConfigButton->setIcon( QIcon(strImagePath + "config.png" ) );
	connect( pConfigButton, SIGNAL(released()), this, SLOT(buttonSlot()) );
	
	createTimer();		//erzeugen von pTimerBox
	createAlarm();		//erzeugen von pAlarmBox
	
	//Layout
	pVLayout = new QVBoxLayout;
	pVLayout->addWidget(pConfigButton);
	pVLayout->addWidget(pTimerBox);
	pVLayout->addWidget(pAlarmBox);
	
	setLayout(pVLayout);
}


void CAdminWindow::buttonSlot()
{
	if( true == pTimerBox->isVisible() )
	{
		pTimerBox->hide();
		pAlarmBox->hide();
		/* HIER VERKLEINERN */
	}
	else
	{
		pTimerBox->show();
		pAlarmBox->show();
	}
}
Benutze Qtopia Core 4.2

TIA
Dateianhänge
Zustand 3
Zustand 3
003.png (2.61 KiB) 2179 mal betrachtet
Zustand 2
Zustand 2
002.png (4.85 KiB) 2179 mal betrachtet
Zustand 1
Zustand 1
001.png (1.83 KiB) 2179 mal betrachtet
Zuletzt geändert von Hulk2442 am 12. November 2008 07:57, insgesamt 1-mal geändert.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Versuch mal ein

Code: Alles auswählen

resize(minimumSize())
nach jeder Änderung.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Hatten wir erst gestern :-)
http://doc.trolltech.com/4.4/qwidget.html#setFixedSize
Alternatively, if you want the widget to have a fixed size based on its contents, you can call QLayout::setSizeConstraint(QLayout::SetFixedSize);
Allerdings kann man dann die Größe nicht mehr manuell ändern.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
Hulk2442
Beiträge: 115
Registriert: 10. Januar 2007 13:44

Beitrag von Hulk2442 »

THX für die Hilfe habe beim suchen den "gestrigen" thread leider nicht gefunden.
Jedoch folgender code:

Code: Alles auswählen

QLayout::setSizeConstraint(QLayout::SetFixedSize);
erfüllt genau was ich gesucht habe!
Antworten