wie Skalierung von QPushButton herausfinden?

Alles rund um die Programmierung mit Qt
Antworten
MADsCIENTIST

wie Skalierung von QPushButton herausfinden?

Beitrag von MADsCIENTIST »

Hallo liebe Community,

meine Frage ist vielleicht banal, aber wie kann ich die Höhe (bzw. die Skalierung) eines
QPushButtons (in px) herausfinden, wenn dieser zusätzlich innerhalb eines Layouts mittels
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding) gestreckt wird?

Danke schon mal im Vorraus.
Hulk2442
Beiträge: 115
Registriert: 10. Januar 2007 13:44

Re: wie Skalierung von QPushButton herausfinden?

Beitrag von Hulk2442 »

Was ist an den Funktionen

Code: Alles auswählen

width()
height()
Auszusetzen?
MADsCIENTIST

Re: wie Skalierung von QPushButton herausfinden?

Beitrag von MADsCIENTIST »

Weil width() u. height() bei mir viel zu hohe Werte liefern. Die Größe erfrage ich daher
jetzt mit sizeHint()!

=> Bei height() wird mir beispielsweise 480 ausgegeben, wo hingegen bei sizeHint().heigth()
50 ausgegeben wird.
Hulk2442
Beiträge: 115
Registriert: 10. Januar 2007 13:44

Re: wie Skalierung von QPushButton herausfinden?

Beitrag von Hulk2442 »

Es hängt sehr davon ab wann du die Größe abfragst.
Wenn du den code unterhalb ausführst erhältst du sogar drei Größen
1.) Konstruktor (vor dem dem Anzeigen der GUI)
2.) Nach dem Erzeugen der GUI (erster Maus klick)
3.) Vergrößern des Fenster + zweiter Mausklick

Code: Alles auswählen

#include "MainWindow.hh"

MainWindow::MainWindow(QWidget *parent) :
	QWidget(parent)
{
//	this->setMinimumSize( 600, 400 );
	createLayout();
	buttonClickedSlot();
}

void MainWindow::createLayout()
{
	pButton = new QPushButton("Button");
	pButton->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
	connect( pButton, SIGNAL(released()), this, SLOT(buttonClickedSlot()) );

	pSizeLabel = new QLabel( "Size: 0 x 0 ");

	pVLayout = new QVBoxLayout;
	pVLayout->addSpacing( 50 );
	pVLayout->addWidget( pSizeLabel );
	pVLayout->addWidget( pButton );
	pVLayout->addSpacing( 50 );

	this->setLayout( pVLayout );
}


void MainWindow::buttonClickedSlot()
{
	pSizeLabel->setText("width = " + QString::number(pButton->width()) + " x " +
						"height = " + QString::number(pButton->height()) + " | " +
						"SizeHint --> width = " + QString::number(pButton->sizeHint().width()) + " x " +
						"height = " + QString::number(pButton->sizeHint().height()) );
}

Antworten