У меня проблема с QComboBox, который не позволяет мне изменить текст редактирования на какой-либо существующий элемент другого регистра.
Пример кода ниже. Что я хотел бы сделать, так это ввести «один» в поле со списком, уже содержащее элемент «Один», без побочного эффекта изменения текста на «Один». В настоящее время он снова меняется на «Один», как только поле со списком теряет фокус.
Отключение AutoCompletionCaseSensitivity работает, но имеет побочный эффект бесполезности (например, не показывает завершения для «один»).
Я также пытался переопределить focusOutEvent QComboBox и восстановить правильный текст, но тогда такие вещи, как копирование-вставка, не работают. Замена комплектующего тоже не помогла.
Тот факт, что поля со списком ведут себя таким образом, вреден для моего приложения. Если у кого-то есть какие-либо идеи (или я пропустил что-то очевидное), пожалуйста, дайте мне знать.
Я использую Qt 4.6.2 и PyQt 4.7.2 в Ubuntu 10.04, но сталкивался с этим в других дистрибутивах/версиях Qt выше 4.5.
Спасибо и с уважением
Пример кода:
from PyQt4.QtGui import *
from PyQt4.QtCore import SIGNAL, Qt
class Widget(QWidget):
def __init__(self, parent=None):
super(Widget, self).__init__(parent)
combo = QComboBox()
combo.setEditable(True)
combo.addItems(['One', 'Two', 'Three'])
lineedit = QLineEdit()
layout = QVBoxLayout()
layout.addWidget(combo)
layout.addWidget(lineedit)
self.setLayout(layout)
app = QApplication([])
widget = Widget()
widget.show()
app.exec_()