問題タブ [qcompleter]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
pyside - 終了時に PySide がクラッシュする (QCompleter を使用)
PySide (Python 2.7.3、PySide 1.1.2、Qt 4.8.1) を使用して、Qt ドキュメントの「カスタム コンプリータの例」を再現しました。
終了時に win32 例外がスローされる (または Mac OS X ではアクセス違反例外) という問題があります。Mac ではスタック トレースを確認でき、ガベージ コレクション中に問題が発生します。QObjects への参照が明らかに一貫していないため、問題が発生します。
次の自己完結型スクリプトでこのクラッシュを確認できますが、完全な挿入が受け入れられた場合のみです。つまり、最初の数文字を入力してから、補完を受け入れます。
一方、完了リストのポップアップが表示されたが、完了を受け入れなかった場合、終了時にクラッシュは発生しません。
c++ - QCompleter、データベースから ID を取得する方法
正しい答えを見つけられずにウェブをたくさん検索した後、私はあなたたちから助けを求めてきました...それで私がそれを説明できるか見てみましょう.
私は Qt 5 で UI に取り組んでおり、lineEdit
オートコンプリートが必要です。を使用できることはわかってQCompleter
おり、正常に動作します。繰り返しQCompleter
を行うクエリを入力しfor
ます。しかし、そのフィールドの ID を知る必要があります。
と を含むデータベースに対してクエリを実行している場合Product_Name
、Product_Code
ユーザーは製品の名前を入力し、各text_edit
イベントで にQCompleter
新しいデータを入力します。しかし、ユーザーが製品を選択したときに、コードを別の場所に表示したい。もちろん、同じ名前でコードが異なる製品が 2 つ以上存在する可能性があるため、検索後にコードを探すことはできません。
では、関連する 2 つのフィールドを に含める方法はありQCompleter
ますか?
私はすでに非表示の列 (コードを使用) を作成し、それを(をシミュレートするために)QTableWidget
の一番下に表示しようとしています。それはうまく見えますが、機能します...しかし、下矢印がテーブルに飛び込んで、フォーカスを失ったときに消えるようにする機能を追加する方法がわかりませんが、テーブルが選択されたときではありません。QlineEdit
Qcompleter
QCompleter
lineEdit
python - オートコンプリート付きの QComboBox は PyQt4 では機能しますが、PySide では機能しません
PyQt4 では正常に動作するカスタム コンプリータを含むコンボ ボックスがありますが、PySide では動作しません。
インライン補完が行われなくなったため、QComboBox のビルトイン コンプリーターが新しいコンプリーターに置き換わっていることを確認しました。ただし、PySide で実行すると、コンプリーターはフィルター処理されたオプションのリストと共にポップアップしません。
また、QStrings を使用した PyQt API 1 と PySide の Python Unicode 型の使用との違いを避けるために、すべてのテキストがすべてstr
またはすべてであることを確認しようとしました。unicode
テキスト タイプを変更しても、PyQt または PySide の動作に影響はありません (PyQt は動作し続けますが、PySide は動作しません)。
これが私のコードです:
python - Qt と Python を使用して QTableView で QCompleter を使用する
QAbstractTableModel editable を作成する方法を読んでいますが、かなり簡単に見えます。
しかし、編集可能なセルを設定して QCompleter を使用するにはどうすればよいでしょうか? QTableViewにQLineEditウィジェットを使用するように指示する必要がありますか?これどうやってするの?
編集: うーん、QTableView.setItemDelegateForColumn()で何かがあると思いますが、デリゲートやその使用方法については何も知りません。
編集:RobbieEのソリューションを試してみましたが、そのようなものはありましたが、ポップアップコンボボックスのジオメトリが間違っていて、Enterを押すとPythonがクラッシュしました.
私の _completerSetupFunction は次のようになります。