2016-05-18 6 views
1

チェック可能なアイテムでQComboBoxを作成しようとしています。私はQComboBoxオブジェクトが使用するカスタムモデルを作成しました(setModel()メソッド経由)。PyQt:チェック可能なアイテムのQComboBox:チェックボックスが表示されない

class FilterModel(QStandardItemModel): 

    def __init__(self, filter_list, parent=None): 
     super(FilterModel, self).__init__(parent) 

     for index, filter in enumerate(filter_list): 
      item = QStandardItem(filter) 
      item.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled) 
      item.setData(Qt.Unchecked, Qt.CheckStateRole) 

      self.setItem(index, 0, item) 

私は私のモデルをインスタンス化するとき、私は、コンストラクタ内のリストなどのアイテムを渡す:https://stackoverflow.com/a/8423904

はここに私のカスタムモデルである:

私はこの質問で提示ソリューションを使用してみました。

しかし、私のアイテムは選択もチェックもできません(チェックボックスは表示されません)。

+0

はい、これは私がこれを実装するために使用した答えです。コードをコピーして貼り付け、C++からPythonに変換しましたが、ここでは動作しません(アイテムは選択可能でもチェック可能でもありません)。 – Klmnop

答えて

0

チェックボックスが表示されない理由はわかりませんが、項目を選択できるようにするには、Qt.ItemIsSelectableフラグも含める必要があります。

いずれにしても、QStandardItem.setCheckableメソッドを試してみませんか?このようなもの:

class FilterModel(QStandardItemModel): 

    def __init__(self, filter_list, parent=None): 
     super(FilterModel, self).__init__(parent) 

     for index, filter in enumerate(filter_list): 
      item = QStandardItem(filter) 
      item.setSelectable(True) 
      item.setCheckable(True) 
      item.setCheckState(Qt.Unchecked) 
      self.setItem(index, 0, item) 
関連する問題