InputDialog breite je nach Bedarf

Alles rund um die Programmierung mit Qt
Antworten
lespaul
Beiträge: 87
Registriert: 11. August 2011 10:07

InputDialog breite je nach Bedarf

Beitrag von lespaul »

Hallo,

ich habe ein InputDialog s. Bild
Der String hat jedoch ein paar nummern mehr vor dem Komma. Deswegen würde ich gerne die Width je nach Bedarf (t_count) anpassen..
Mit setMinimumWidth und setFixedWidth kam ich nicht zum Ziel..

Code: Alles auswählen

			int t_count = 5;
			QInputDialog *t_inpdlg = new QInputDialog(this, Qt::Popup);
			t_inpdlg->setWindowTitle(tr("Encoded Result:"));
			t_inpdlg->setLabelText( QString("Line; pOFF = %1; nOFF = %2;").arg(t_stringlist.at(0)).arg(t_stringlist.at(1)) );
			t_inpdlg->setTextValue( QString("%1").arg(parsedString) );
			t_inpdlg->setMinimumWidth( t_count * 50 );
Vielen Dank..
MfG LesPaul
trendyAndy
Beiträge: 54
Registriert: 27. März 2009 15:01

Re: InputDialog breite je nach Bedarf

Beitrag von trendyAndy »

Hallo lespaul,

versuche mal

Code: Alles auswählen

  connect(t_inpdlg, SIGNAL(textValueChanged(QString)), this, SLOT(textValueChanged(QString)));
Dann den Slot dazu:

Code: Alles auswählen

void MainWindow::textValueChanged(QString text)
{
    QFont DialogFont = t_inpdlg->font();
    QFontMetrics metrics(DialogFont);
    t_inpdlg->setMinimumWidth(metrics.width(text));
}
Dann wird der Dialog größer oder kleiner je nach Anzahl der Stellen. Mußt evtl. noch etwas dran rum spielen weil ja um das Inputfeld auch noch etwas Rand ist, aber prinzipiell geht das so.

Gruß
Andy
Antworten