Czy można zastosować arkusz stylów do wyskakującego elementu QCompleter przywiązanego do QCombobox? Jeśli nie, czy wymaga magii delegatów? Jeśli tak, to jak to może zadziałać, jak oni, mają tendencję do mylenia mnie ze sobą. Oto mój kod widżet:Stylizacja okna wyskakującego z QCompleter w PyQt
class autoFillField(QComboBox):
def __init__(self, parent=None):
super(autoFillField, self).__init__(parent)
self.setFocusPolicy(Qt.NoFocus)
self.setEditable(True)
self.addItem("")
self.pFilterModel = QSortFilterProxyModel(self)
self.pFilterModel.setFilterCaseSensitivity(Qt.CaseInsensitive)
self.pFilterModel.setSourceModel(self.model())
self.completer = QCompleter(self.pFilterModel, self)
self.completer.setCompletionMode(QCompleter.UnfilteredPopupCompletion)
self.setCompleter(self.completer)
self.setStyleSheet(STYLING FOR COMBOBOX HERE, BUT NOT POPUP)
self.lineEdit().textEdited[unicode].connect(self.pFilterModel.setFilterFixedString)
def on_completer_activated(self, text):
if text:
index = self.findText(text)
self.setCurrentIndex(index)
def setModel(self, model):
super(autoFillField, self).setModel(model)
self.pFilterModel.setSourceModel(model)
self.completer.setModel(self.pFilterModel)
def setModelColumn(self, column):
self.completer.setCompletionColumn(column)
self.pFilterModel.setFilterKeyColumn(column)
super(autoFillField, self).setModelColumn(column)
Czy stylizacji popup odbywać się w klasie combobox lub mogłoby się zdarzyć, poza nią, gdzie dane są wprowadzane poprzez addItems? Z góry dziękuję.
Idealnie! Niemal żałuję, że nie jest to tak proste, jak chwytanie .popup(), ale nie będę narzekać. Dziękuję Panu! – Cryptite