から継承されたクラスがあります。そのクラスで、オブジェクトをQWidget
作成し、表示するアイテムを入力します。リストビューでのアイテムの選択が変更されたら、イベントQListView
を取得したいと思います。selectionChange
どうすればこれを達成できますか?簡単に教えてください。
ビューがある場合、アイテムの選択に使用されるモデルがあります。それはと呼ばれQItemSelectionModel
ます。
たとえば、を使用するとQListView
、次のようにselectionModelを取得できます。
QItemSelectionModel* selectionModel() const;
今、そのモデルから、あなたは多くの信号で接続することができるでしょう:
void currentChanged ( const QModelIndex & current, const QModelIndex & previous )
void currentColumnChanged ( const QModelIndex & current, const QModelIndex & previous )
void currentRowChanged ( const QModelIndex & current, const QModelIndex & previous )
void selectionChanged ( const QItemSelection & selected, const QItemSelection & deselected )
私はそれがあなたに少し役立つと思います!
https://doc.qt.io/archives/qt-4.8/qlistwidget.htmlビューの代わりにQListWidgetを使用することをお勧めします。理由の詳細は覚えていませんが、このクラスには使用したいこれらのシグナルがあります。
https://doc.qt.io/archives/qt-4.8/qlistwidget.html#itemSelectionChanged これは接続する必要のあるシグナルです。
クラス宣言にスロットを作成します。
private slots:
void selChanged();
このスロットに、選択の変更時に実行したいことを入力します。シグナルをクラスのどこか(おそらくQWidget派生物のコンストラクター)のこのスロットに接続します。
connect(yourListWidget, SIGNAL(itemSelectionChanged()), this, SLOT(selChanged()));
それでおしまい