Würden Sie in der Lage sein, anstatt ein QLineEdit
der Verwendung und ein QLabel
zu verwenden, um zwei QLineEdits:
ich persönlich mit diesem Code Glück hat?
Beachten Sie Folgendes:
QWidget* widget = new QWidget();
// Original line edit
QLineEdit *lineEdit1 = new QLineEdit("999");
lineEdit1->setFixedWidth(100);
lineEdit1->setAlignment(Qt::AlignRight);
lineEdit1->setStyleSheet("border-width: 2px;");
// A suggestion if you want a label
QLabel *label = new QLabel("999");
label->setFixedWidth(100);
label->setAlignment(Qt::AlignRight);
label->setStyleSheet("border: 2px solid rgba(255, 0, 0, 0%)");
// Alternatively if you can use another QLineEdit
QLineEdit *lineEdit2 = new QLineEdit("999");
lineEdit2->setFixedWidth(100);
lineEdit2->setAlignment(Qt::AlignRight);
lineEdit2->setReadOnly(true);
lineEdit2->setStyleSheet("background: rgba(0, 0, 0, 0%); "
"border-width: 2px; "
"border-style: solid; "
"border-color: rgba(0, 0, 0, 0%);");
// Bring it all together
QLayout *layout = new QVBoxLayout(widget);
layout->addWidget(lineEdit1);
layout->addWidget(label);
layout->addWidget(lineEdit2);
widget->show();
Es zwingt alle Grenzen 2px zu sein, also auf verschiedenen Plattformen sollte es gleich sein. Die zweiten QLineEdit
soll nicht anders aussehen als die QLabel
(Die Textfarbe als die des Etiketts, wenn auch etwas dunkler aussieht, was eine gute Sache sein könnte, da es das Original bearbeiten matches)
den zusätzlichen Vorteil der Verwendung ein QLineEdit
statt die QLabel
ist, dass der Wert jetzt wählbar ist ...
Disclaimer: Ich habe nur unter Linux getestet und ich habe keinen Pixel-Level-Vergleich durchgeführt.
Edit: Ich sehe die Ausrichtung mit verschiedenen Schriftgrößen ausfällt.
Wie Sie sehen können, verwendet 'QLineEdit' ein Trennzeichen vom Rand zum Text (ganz wie der Rand von' QLayout'. Sie können ein Layout um das 'Label' hinzufügen, um dieses Verhalten zu emulieren. – Zaiborg
Have a Siehe http://doc.qt.io/qt-4.8/qlabel.html#indent-prop – Ankur
Wenn Sie eine genaue Auffüllung berechnen müssen, können Sie [QLineEdit :: textMargins()] (http: // doc .qt.io/qt-5/qlineedit.html # textMargins) – ymoreau