2011-11-18 8 views
7

QComboboxに関連付けられたQCompleterのポップアップ部分にスタイルシートを適用できますか?そうでなければ、デリゲートマジックが必要ですか?もしそうなら、彼らが私の地獄を混乱させる傾向があるように、それはどのように働くかもしれません。ここに私のウィジェットのコードは次のとおりです。PyComのQCompleterのポップアップのスタイル

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) 

ポップアップスタイリングは、ComboBoxクラスで行わだろう、またはデータがaddItemsを介して入力されるところ、それは外のそれの起こるでしょうか?前もって感謝します。

答えて

14

popup of the completerのスタイルシートを設定します。これはQListViewオブジェクトになります。実行可能な例(ポップアップの背景は黄色でなければなりません):

#!/usr/bin/python 

import sys 
from PyQt4 import QtGui, QtCore 

app = QtGui.QApplication(sys.argv) 

w = QtGui.QComboBox() 
w.setEditable(True) 
c = QtGui.QCompleter(['Hello', 'World']) 
c.setCompletionMode(QtGui.QCompleter.UnfilteredPopupCompletion) 
c.popup().setStyleSheet("background-color: yellow") 
w.setCompleter(c) 
w.show() 

sys.exit(app.exec_()) 
+0

パーフェクト!私はほとんどそれがポップアップ()をつかむほど簡単ではなかったと思うが、私は文句を言わない。ありがとうございます! – Cryptite

関連する問題