gpt4 book ai didi

c++ - Qt - 设置不可编辑的QComboBox的显示文本

转载 作者:太空狗 更新时间:2023-10-29 20:27:35 38 4
gpt4 key购买 nike

我想将 QComboBox 的文本设置为一些自定义文本(不在 QComboBox 的列表中),而不将此文本添加为​​ QComboBox 的项目。这种行为可以在可编辑的 QComboBox 上实现,使用 QComboBox::setEditText(const QString & text)。然而,在不可编辑的 QComboBox 上,这个函数什么都不做。

是否有可能以编程方式将不可编辑的 QComboBox 的显示/编辑文本设置为不在其列表中的内容?还是我必须找到另一种方法(例如,使用带有弹出菜单的 QPushButton)

编辑:考虑一个带有 InsertPolicy QComboBox::NoInsert 的可编辑 QComboBox。如果用户输入内容并按下回车键,输入的值将被使用但不会添加到列表中。我想要的是这种以编程方式更改“当前”文本的行为,但不允许用户自己输入一些文本。用户可以从 QComboBox 中选择一些内容,但一段时间后,我可能想要覆盖“当前”文本。

最佳答案

当我将 QComboBox 子类化以制作复选框的组合框时,我遇到了同样的问题。我写了一个小函数来以编程方式更改组合框中显示的文本,但我不想让用户编辑该文本。解决方案是将组合框设置为可编辑:

 this->setEditable(true);

QComboBox::lineEdit() 只读。引用函数:

void CheckedComboBox::setText(QString text)
{
QLineEdit *displayedText = this->lineEdit();
displayedText->setText(text);
displayedText->setReadOnly(true);
}

关于c++ - Qt - 设置不可编辑的QComboBox的显示文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16080431/

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