如何在Qt C ++中的QLineEdit中放置静态文本,以使它不能被删除,并且当我写入QLineEdit时,不应将它们隔开。
没有常规的方法在中放置前缀或后缀QLabel
。
尽可能QLineEdit
地设置一个文本,当没有indide时将显示该文本-请参见QLineEdit::placeholderText
。
另一种处理方法QLineEdit
是设置,inputMask
但是它将更改光标,并且需要特定数量的字母。
如果您知道最大数量的符号并想要做一个后缀,则可以使用另一个QLabel
:
1 length
.将文本限制为在右边具有一定的可用空间。
2.QLabel
放在的右侧,然后在QLineEdit
其中输入一个后缀文本。
注意:您将不能够把QLabel
对QLineEdit
在QtDesigner如果QLineEdit
是一个布局内。在这种情况下,您可以添加QWidget
而不是QLineEdit
在布局中放置QLineEdit
并放置QLabel
在没有布局的此小部件中。您也可以QLabel
在代码中创建:
QLabel* label = new QLabel(this);
label->setText("kg");
label->move(lineEdit->rect().right() - label->width() - 3, lineEdit->rect().center().y() - label->height() / 2);
添加后缀和前缀的最灵活方法是创建一个从QWidget
添加两个信息QLabels
(前缀和后缀)继承的新类,QLineEdit
在它们之间添加并使用css使它们看起来像一个单独的类QLineEdit
。
在此图像上:前缀和后缀为QLabels
。_some_text_被QLineEdit
命名,lineEdit
并且所有它们都在水平布局的QWidget
命名内部complexLineEdit
。
这是我用于上图的css:
QWidget#complexLineEdit
{
border-top: 1px solid #CCCCCC;
border-left: 1px solid #DDDDDD;
border-right: 1px solid #DDDDDD;
border-bottom: 1px solid #DDDDDD;
background-color: white;
}
QWidget#complexLineEdit QLineEdit#lineEdit
{
border: 0px;
}
您可以使用它,使其与更加相似QLineEdit
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句