2016-04-15 11 views
1

私はQComboBoxを持っています。また、実装されたQAbstractItemViewがコンボボックスビューとして設定されています。現在のアイテムが変更されたことをコンボに知らせるために、私の見解からどのような信号を出す必要がありますか? "selectionChanged"または "currentItemChanged"を表示すると、選択した項目はコンボに表示されず、ビューは引き続き表示されます。QComboBoxをどのような信号で見ることができますか?

QComboBox* c = new QComboBox(); 
    QAbstractItemView* v = new MyComboView(); 
    c->setView(v); 

私は問題をより明確にしようとします。 私はコンボボックスのカスタムビューを持っている、それが表示され、マウスの動き、マウスオーバーイベントが正しく動作しています。しかし、私には本当の問題が1つあります。それをクリックするとモデルアイテムはコンボに表示されません。私はselectionChangedとcurrentChangedシグナルを送出しようとしましたが、それは役に立ちませんでした。この信号を動作させるために私自身のスロットを書き込む必要がありますか、それともQTで行うべきですか?

+0

QComboBoxから信号 'currentIndexChanged(int)'を試しましたか? – IAmInPLS

+0

あなたの質問は、[XY問題](http://xyproblem.info)を記述しているようです。達成したいこと、試したこと、期待される結果とどのように異なるかを説明してください。 – Murphy

+0

マーフィー、悪い説明を申し訳ありません。私はそれをもっと明確にしようとします。 – Ani

答えて

2

このような信号はありません。QComboBoxは、ビューがイベントフィルタを通してだ情報を取得:

マウスがビュー上に移動するたびに、(図の)現在のインデックスがマウスカーソルに応じて設定されます。

QComboBox現在のインデックスとリスト(ビュー)が隠されているように、マウスボタンがリリースされるたびに、ビューの現在のインデックスが設定されています。

+0

ありがとう、トマス。このソリューションは、MyComboViewでmouseReleaseEventを再実装していました。 – Ani

関連する問題