QTableView
と、編集、追加、削除のためのボタンがあります。以下に示されます。 QTableViewで複数の項目が選択されているときにボタンを無効にする方法
テーブルの複数の項目が選択されている場合は、[追加]ボタンと[編集]ボタンを無効にします。単一の項目が選択されている場合は、有効にする必要があります。私は、複数の商品選択が次のコードで検出できることを知っています: 。しかし、複数の行が選択されている場合、ボタンを無効にする方法。あなたが複数の項目の選択を検出したときに
QTableView
と、編集、追加、削除のためのボタンがあります。以下に示されます。 QTableViewで複数の項目が選択されているときにボタンを無効にする方法
テーブルの複数の項目が選択されている場合は、[追加]ボタンと[編集]ボタンを無効にします。単一の項目が選択されている場合は、有効にする必要があります。私は、複数の商品選択が次のコードで検出できることを知っています: 。しかし、複数の行が選択されている場合、ボタンを無効にする方法。あなたが複数の項目の選択を検出したときに
あなたはvoid selectionChanged(const QItemSelection & selected, const QItemSelection & deselected)
(QTドキュメント:http://doc.qt.io/qt-5/qitemselectionmodel.html#selectionChanged)信号に接続されたスロットにすることができQItemSelectionModel
の、あなたはTableView-> selectionModelのよう決定することができます() 。このようなもの:
void slotSelectionChanged(const QItemSelection & selected,
const QItemSelection & deselected)
{
Q_UNUSED(deselected);
QModelIndexList indexies = selected.indexes();
QVector<int> rows;
foreach(const QModelIndex& index, indexies)
{
int row = index.row();
if(!rows.contains(row))
{
rows.append(row);
}
if(rows.count() > 1)
break;
}
if(rows.count() > 1)
{
//set button enabled false
button->setEnabled(false);
}
else
{
//set button enabled true
button->setEnabled(true);
}
}
、これを試してみてください。
はbutton->setEnabled(false);
ボタン> setEnabled(TableView-> selectionModel() - > selectedRows()。size()<= 1); //信号に接続されているスロットで呼び出されるQItemSelectionModel :: selectionChanged(const QItemSelection&selected、const QItemSelection&deselected) –
解決に感謝します。出来た... –