J'ai un problème avec QComboBox ne me permettant pas de changer le texte d'édition à quelque chose existant de cas différent.QComboBox remplacer le texte d'édition si le cas diffère de l'élément existant
Exemple de code est ci-dessous. Qu'est-ce que je voudrais faire est d'entrer «un» dans une boîte combo contenant déjà l'élément «One» sans l'effet secondaire du texte étant changé en «One». Actuellement, il est à nouveau défini sur 'One' sous la forme dès que la zone de liste déroulante perd son focus.
La désactivation de AutoCompletionCaseSensitivity fonctionne, mais elle a l'effet de ne pas être utile (par exemple, ne pas afficher les finitions pour 'one').
J'ai également essayé de remplacer le focusOutEvent de QComboBox et restaurer le texte correct, mais des choses comme copier-coller ne fonctionnent pas . Changer le completer n'a pas aidé non plus.
Le fait que les boîtes combo se comportent de cette façon est préjudiciable à mon application. Si quelqu'un a des idées (ou j'ai manqué quelque chose d'évident), s'il vous plaît laissez-moi savoir . J'utilise Qt 4.6.2 et PyQt 4.7.2 sur Ubuntu 10.04, mais j'ai l'ai expérimenté sur d'autres versions de distributions/Qt au dessus de 4.5.
Merci et salutations
Exemple de code:
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_()
Merci, mais cela n'aide pas beaucoup. Il ne répond pas à l'utilisateur en appuyant sur Tab ou en cliquant sur un autre widget. – concentricpuddle