0

私は学生プログラマーであり、Qtを使用して作業用のGUIを構築していますが、ある種の問題に遭遇しました。メインインターフェイスには、データを保持するQTreeWidgetがあります。また、このGUIには、すでに機能にパースペクティブに接続されている[編集]、[コピー]、および[削除]ボタンがあります。複数の項目を選択した場合、編集ボタンを無効にしたいのですが。これが私の問題を抱えているところです。これを行うための最良の方法(もう一度私は学生です)は、ある種の接続ステートメントであると思いますが、私はこのウィジェットのQtドキュメントを調べていて、これに適していると思われるものを見つけることができません。私は、より経験豊富な誰かがこれについて何らかの方向性を提供できることを望んでいました。

私は私が使うべき/使うことができるかどうか疑問に思いました

void QTreeWidget::itemSelectionChanged () [signal]

この信号を使用できる場合は、選択されている複数のアイテムにどこから関連付け始めるかわからないため、ここで空白を押しているので、少し光を当ててください。

4

2 に答える 2

1

それがあなたがやろうとしていることなら、私はあなたがQtDesignerだけでそれをすることができるとは思わない。itemSelectionChangedシグナルを処理するための独自のスロットを定義できます。そのスロットでは、QTreeWidgetのselectedItemsメソッドを使用して、選択されたアイテムの数を確認し、それに基づいてボタンを有効/無効にすることができます。

于 2012-01-31T00:09:52.463 に答える
1

ええ、これは正しい信号です。たとえば、ここにあなたの質問のためのスロットの簡単な実装があります:

void disableItems() {

    QList<QTreeWidgetItem*> selection = treeWidget->selectedItems();
    if(selection.size() > 1) {

        //disable the gui items here

    } else { 

        //maybe reenable items otherwise
    }
}
于 2012-01-31T14:47:15.170 に答える