0

wx-widget では、 を呼び出すことであらゆるイベントを元に戻すことができますVETO()

ここでは、QT で最初の GUI を実行しています。newノードを作成しましたtest case 3

ここで、この新しいノードを保存しない限り、ツリーの選択を変更できるようにしたいと考えています。このノードを一度も保存していない場合、選択の変更はこの保存されていないノードに戻る必要がありますtest case 3。ノードを保存したことを示すために、グローバル変数シグナルを使用しています。

どうすれば達成できますか?

私はこのようなことを試みましたが、結果はありませんでした。

内部selection changed event handlerで新しいノード作成シグナルが設定されている場合、treewidget の選択を変更すると、treewidget の選択を treewidget の最後の項目に設定しようとしています。

QPoint prevPoint;
QModelIndex index;
int count = ui->treeWidgetLeft->topLevelItemCount();
//prevPoint.setX(currentXmlRootNodeNumber +1 );
prevPoint.setX(count);
prevPoint.setY(0);
index = ui->treeWidgetLeft->indexAt(prevPoint);
abortEvent = TRUE;
ui->treeWidgetLeft->selectionModel()->select(index ,QItemSelectionModel::Select);

そして、選択の開始時にイベントハンドラーが変更されたことを確認します。

if (abortEvent) {
    abortEvent = false;
    return;
}

ここに画像の説明を入力

4

1 に答える 1