gpt4 book ai didi

macos - 如何在 QLineEdit 中放置静态文本(后缀、前缀)?

转载 作者:行者123 更新时间:2023-12-02 00:51:24 25 4
gpt4 key购买 nike

如何将静态文本放入 QLineEdit在 Qt C++ 中,这样它就不能被删除,并且当我写入 QLineEdit 时,它不应该被分隔。

最佳答案

没有常规方法可以在 QLabel 中放置前缀或后缀。

占位符

QLineEdit 而言,您可以设置一个文本,当内部没有文本时将显示该文本 - 请参阅 QLineEdit::placeholderText

enter image description here

输入掩码

使用QLineEdit执行此操作的另一种方法是设置inputMask,但它会更改光标并且需要特定数量的字母。

enter image description here

带有 QLabel 的 Postfix

如果您知道符号的最大数量并想要制作后缀,您可以使用另一个QLabel来获取它:
1. 限制文本的长度,使其右侧有一定的可用空间。
2. 将QLabel放置在QLineEdit右侧,并在其中输入后缀文本。

注意:如果 QLineEdit 位于布局内部,您将无法将 QLabel 放在 QtDesigner 中的 QLineEdit 上。在这种情况下,您可以在布局中添加 QWidget 而不是 QLineEdit,并将 QLineEditQLabel 放入此小部件中,没有布局。您还可以在代码中创建QLabel:

QLabel* label = new QLabel(this);
label->setText("kg");
label->move(lineEdit->rect().right() - label->width() - 3, lineEdit->rect().center().y() - label->height() / 2);

enter image description here

自定义小部件

添加后缀和前缀的最灵活方法是创建一个继承自QWidget的新类,添加两个QLabels(前缀和后缀)信息,添加QLineEdit 在它们之间并使用 css 使它们看起来像单个 QLineEdit

enter image description here

在此图像上:前缀和后缀是QLabels。 _some_text_ 是名为 lineEditQLineEdit,它们全部位于水平布局中名为 complexLineEditQWidget 内。

这是我用于上图的 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 更加相似。

关于macos - 如何在 QLineEdit 中放置静态文本(后缀、前缀)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27311577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com