你能不使用 aQLineEdit
和 aQLabel
来使用两个 QLineEdits 吗?
考虑以下:
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();
它强制所有边框为 2px,所以在不同的平台上它应该是相同的。第二个QLineEdit
看起来应该与QLabel
(文本颜色看起来比标签的颜色稍暗,这可能是一件好事,因为它与原始编辑相匹配)
使用 aQLineEdit
而不是 the的额外好处QLabel
是该值现在是可选择的...
免责声明:我只在 Linux 上测试过,我没有做过像素级别的比较。
编辑:我看到对齐失败,字体大小不同。