質問
私を示すポップアップメニューを選択値QTableWidget.最も低い項目は"変更リスト"の入力が選択で新しいウィンドウは自動的に表示され、QComboBoxは消え、細胞に戻るQt::DisplayRoleます。
今Qtは、すべての素敵なショッピングモーンのような QTableWidget.edit()
や QTableWidget.editItem()
, 何を思ってい求めているのは、 QTableWidget.endEditing()
, 好ましくは指定に関わらずのインデックス細胞がんを呼び出す:
table.currentIndex()
---でもないわからない場合はできるという保証の現細胞の細胞編集されている。
あるAPIにありそういう編集者?
解決
QTableWidget 受け継ぐ19日公開スロットからQWidget.それらのどれかひとつをsetDisabled()は、入力イベントを無効にするウィジェットとそのすべての子どもたち。
おう:
table.setDisabled( true );
table.setDisabled( false );
がと言われましたら動かなかったのですがこれに代わり得る方法:ない場合はのようにテーブルがフォーカスを失っしょうが)することができ用 EditTriggers.例えば:
table.setEditTriggers( QAbstractItemView::NoEditTriggers );
他のヒント
table.setCurrentItem(None)
は私のために働いていたものです。 (あなたには、いくつかのcellChanged / itemChangedスロット機能を使用する場合の信号をブロックすることを忘れないでください。)
これはPyQtはです。 C ++のために私はNULLとなしを交換しないと考えています。
あなたはエディタを閉じQTableWidget.closePersistentEditor()を使用することができるかもしれません。しかし、QAbstractItemView.closeEditorは()あなたはQModelIndexベースのAPIに慣れているようだと、すでにカスタムエディタウィジェットを使用している、特に以来、あなたが望むものに近いかもしれません。
私は、リストウィジェットのために話すことはできません。しかし、私はここに似た何かをやろうとしてしまっています。
私は、選択された値に基づいて、次の適切なカラムに閉じ移動たときに、リストが、サブフォームをもたらし、セルをダブルクリックし、カラムに基づいていた。
私の問題は、私はセルの値を取得し、次の適切なセルを「選択」できましたが、元のセルが編集モードで選択した滞在!
これは最終的に私のダブルクリックは、すなわち、セルを選択したことを私に夜が明けました。編集ます。
シングルクリックでセルを選択するが、編集モードを開きません。
サイドノート:本当にモーダル行動し、そのサブフォームを取得していないので、私は、呼び出し元のフォームでのループを作成できない:サブフォームが表示されていた一方で、唯一のコードがあることをapp.processEvents()