7

このテキストを QComboBox の項目として追加せずに、QComboBox のテキストを (QComboBox のリストにない) カスタム テキストに設定したいと思います。この動作は、編集可能な QComboBox で実現できQComboBox::setEditText(const QString & text)ます。ただし、編集不可能な QComboBox では、この関数は何もしません。

編集不可能な QComboBox の表示/編集テキストを、そのリストにないものにプログラムで設定することは可能ですか? または、別の方法を見つける必要がありますか (たとえば、ポップアップ メニューで QPushButton を使用します)。

編集: で編集可能な QComboBox を検討してくださいInsertPolicy QComboBox::NoInsert。ユーザーが何かを入力して Enter キーを押すと、入力された値が使用されますが、リストには追加されません。私が望むのは、この動作で「現在の」テキストをプログラムで変更することですが、ユーザーが自分でテキストを入力することはできません。ユーザーは QComboBox から何かを選択できますが、しばらくしてから、「現在の」テキストをオーバーライドしたい場合があります。

4

4 に答える 4

6

QComboBoxチェックボックスのコンボボックスを作成するためにサブクラス化したときに、同じ問題が発生しました。コンボ ボックスに表示されるテキストをプログラムで変更する小さな関数を作成しましたが、ユーザーがそのテキストを編集できるようにしたくありませんでした。解決策は、コンボ ボックスを編集可能に設定することでした。

 this->setEditable(true);

およびQComboBox::lineEdit()読み取り専用。関数を参照してください:

void CheckedComboBox::setText(QString text)
{
   QLineEdit *displayedText = this->lineEdit();
   displayedText->setText(text);
   displayedText->setReadOnly(true);
}
于 2014-10-01T14:21:22.097 に答える