問題タブ [pyqt]
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.
python - PyQt と PyCairo
Gtk Drawing Area 内に PyCairo サーフェスを配置できることはわかっています。しかし、Qt の方が作業しやすいと思うので、Qt コンポーネント内に PyCairo サーフェスを配置する方法があるかどうか疑問に思っていましたか?
python - PyQt-QScrollBar
Stacktoverflow 様、QScrollBar の使用例を教えていただけますか? ありがとう。
python - Python の効率的な画像サムネイル コントロール?
Python GUI アプリケーションが多数のサムネイル (10000 以上など) を表示するのに最適なものはどれですか? パフォーマンス上の理由から、このようなサムネイル コントロールは仮想アイテムをサポートする必要があります。つまり、現在ユーザーに表示されているサムネイルのみのアプリケーションを要求します。
python - PyQt: QDialog でウィジェットを自動的にサイズ変更する
ダイアログ自体のサイズが変更されたときに、QDialog のウィジェットを自動的にサイズ変更するのに苦労しています。
次のプログラムでは、メイン ウィンドウのサイズを変更すると、テキスト領域のサイズも自動的に変更されます。ただし、ダイアログのサイズを変更しても、ダイアログ内のテキスト領域は同じサイズのままです。
ダイアログのテキストエリアを自動的にサイズ変更する方法はありますか? ダイアログ自体とその中の 2 つのウィジェットで使用setSizePolicy(QSizePolicy.Ignored, QSizePolicy.Ignored)
してみましたが、効果がないようです。
関連する場合は、openSuSE 10.2 で Qt バージョン 3.3.7 と PyQt バージョン 3.5.5-29 を使用しています。
pyqt - Qt: 背景を消去 (Windows Aero Glass)
アップデート
Qt とDWMの使用例については、 「 Using Blur Behind on Windows 」を参照してください。代替テキスト http://labs.trolltech.com/blogs/wp-content/uploads/2009/09/blurbehind2.png
元の質問:
Qt で Windows Aero Glass ウィンドウを作成したいのですが、次のようになります。
しかし、いくつかを呼び出した後my_window->repaint()
、ウィンドウのラベルが壊れます:
しかし、ウィンドウのサイズを少し変更すると、適切に再描画されます。
問題は、ウィンドウの背景を消去して、ウィジェットがきれいなガラスに自分自身をペイントするようにするにはどうすればよいかということです。
問題を再現するための短いコードは次のとおりです (Vista with Aero):
ここでウィンドウをクリックするか、Alt-Tab
数回クリックするだけです。
とにかく、Aero Glass でラベルを使用することは、私が必要としているものではありません。なぜなら、QLabel は (ウィンドウのタイトルのように) しばらく光って自分自身をペイントする方法を知らないからです。私が必要としているのは、「ガラス」をきれいにする一般的な方法です。
python - Windowsで実行されているPyQtアプリでコンソールウィンドウを非表示にするにはどうすればよいですか?
確かにこれは可能ですか?PyQt のチュートリアルとドキュメントを探してきましたが、答えが見つかりません。おそらく、検索クエリを別の方法で表現する必要があるだけです。
[編集]
答えてくれたPEZに感謝します-Win32の第20章でのPythonプログラミングで.pyw
の拡張機能の使用を含む詳細
ide - PyQt アプリの開発にはどのようなアイデアが適していますか?
PyQt アプリの開発にはどのようなアイデアが適していますか?
python - pyqt インポートの問題
Pythonでこれを行うのに問題があります:
私が得るトレースバックは
ファイルの後半で dcopext をインポートして、インポートを切り替えようとしましたが、どれも機能しませんでした。提案をありがとう。
編集: 1 つの問題に絞り込みました: 内部で qt3 を使用する dcopext を使用していますが、PyQt4 を使用したいと考えています。
qt - QTableWidget にセルの編集を終了するように指示するにはどうすればよいですか?
QTableWidget でいくつかの値を選択するためのポップアップ メニューを表示しています。一番下の項目は「リストの変更」エントリです。それを選択すると、新しいウィンドウが自動的に表示され、QComboBox が消え、セルが Qt::DisplayRole 状態に戻ります。
QTableWidget.edit()
現在、Qt にはとのような素敵な API 呼び出しがすべてあります。QTableWidget.editItem()
私が本当に探しているのは でありQTableWidget.endEditing()
、できればセルのインデックスを指定せずに、この呼び出しを使用して取得できます。
…しかし、現在のセルが常に編集中のセルであることを保証できるかどうかはわかりません。
この種のエディタを閉じる API はありますか?
python - PyQt:GUIをフリーズせずに進行状況を更新するには?
質問:
- GUI をロックせずに (「応答なし」) スレッドの進行状況を追跡するためのベスト プラクティスは何ですか?
- 一般に、GUI 開発に適用されるスレッド化のベスト プラクティスは何ですか?
質問の背景:
- Windows 用の PyQt GUI があります。
- HTMLドキュメントのセットを処理するために使用されます。
- 一連のドキュメントを処理するには、3 秒から 3 時間かかります。
- 複数のセットを同時に処理できるようにしたい。
- GUI をロックしたくありません。
- これを達成するためにスレッドモジュールを見ています。
- 私はスレッド化に比較的慣れていません。
- GUI には進行状況バーが 1 つあります。
- 選択したスレッドの進行状況を表示したい。
- 選択したスレッドが終了した場合、そのスレッドの結果を表示します。
- Python 2.5 を使用しています。
私の考え:進行状況が更新されたときに、進行状況バーを更新する関数をトリガーするQtSignalをスレッドに発行させます。また、結果を表示できるように、処理が終了したときに通知します。
このアプローチに関するコメント (欠点、落とし穴、賞賛など) を歓迎します。
解像度:
QThread クラスと関連するシグナルとスロットを使用して、スレッド間で通信することになりました。これは主に、私のプログラムが既に GUI オブジェクト/ウィジェットに Qt/PyQt4 を使用しているためです。このソリューションでは、既存のコードに実装する変更も少なくて済みます。
Qt がスレッドとシグナルを処理する方法を説明している該当する Qt の記事へのリンクは次のとおりです ( http://www.linuxjournal.com/article/9602 ) 。以下抜粋:
幸いなことに、Qt では、スレッドが独自のイベント ループを実行している限り、シグナルとスロットをスレッド間で接続できます。これは、重要なアプリケーションで必要になるすべてのブックキーピングおよび中間の QEvent 派生クラスを回避するため、イベントの送受信に比べてはるかにクリーンな通信方法です。スレッド間の通信は、あるスレッドから別のスレッドのスロットに信号を接続することになり、スレッド間でデータを交換する際のミューテックスとスレッド セーフの問題は Qt によって処理されます。
シグナルを接続する各スレッド内でイベント ループを実行する必要があるのはなぜですか? その理由は、あるスレッドから別のスレッドのスロットに信号を接続するときに Qt が使用するスレッド間通信メカニズムに関係しています。このような接続が確立されると、キュー接続と呼ばれます。キューに入れられた接続を介してシグナルが発行されると、宛先オブジェクトのイベントループが次に実行されるときにスロットが呼び出されます。代わりにスロットが別のスレッドからのシグナルによって直接呼び出された場合、そのスロットは呼び出しスレッドと同じコンテキストで実行されます。通常、これはあなたが望むものではありません (特に、データベース接続を使用している場合、データベース接続はそれを作成したスレッドだけが使用できるため、望ましくありません)。キューに入れられた接続は、シグナルをスレッド オブジェクトに適切にディスパッチし、イベント システムをピギーバックすることによって、独自のコンテキストでそのスロットを呼び出します。これはまさに、一部のスレッドがデータベース接続を処理するスレッド間通信に必要なものです。Qt のシグナル/スロット メカニズムは、上記で概説したスレッド間イベント パッシング スキームの実装の根底にありますが、よりクリーンで使いやすいインターフェイスを備えています。
注: elibenにも適切な回答があります。スレッド セーフとミューテックスを処理する PyQt4 を使用していなければ、彼の解決策が私の選択だったでしょう。