問題タブ [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.

0 投票する
2 に答える
2500 参照

python - PyQt と PyCairo

Gtk Drawing Area 内に PyCairo サーフェスを配置できることはわかっています。しかし、Qt の方が作業しやすいと思うので、Qt コンポーネント内に PyCairo サーフェスを配置する方法があるかどうか疑問に思っていましたか?

0 投票する
3 に答える
3090 参照

python - PyQt-QScrollBar

Stacktoverflow 様、QScrollBar の使用例を教えていただけますか? ありがとう。

0 投票する
3 に答える
2588 参照

python - Python の効率的な画像サムネイル コントロール?

Python GUI アプリケーションが多数のサムネイル (10000 以上など) を表示するのに最適なものはどれですか? パフォーマンス上の理由から、このようなサムネイル コントロールは仮想アイテムをサポートする必要があります。つまり、現在ユーザーに表示されているサムネイルのみのアプリケーションを要求します。

0 投票する
4 に答える
30966 参照

python - PyQt: QDialog でウィジェットを自動的にサイズ変更する

ダイアログ自体のサイズが変更されたときに、QDialog のウィジェットを自動的にサイズ変更するのに苦労しています。

次のプログラムでは、メイン ウィンドウのサイズを変更すると、テキスト領域のサイズも自動的に変更されます。ただし、ダイアログのサイズを変更しても、ダイアログ内のテキスト領域は同じサイズのままです。

ダイアログのテキストエリアを自動的にサイズ変更する方法はありますか? ダイアログ自体とその中の 2 つのウィジェットで使用setSizePolicy(QSizePolicy.Ignored, QSizePolicy.Ignored)してみましたが、効果がないようです。

関連する場合は、openSuSE 10.2 で Qt バージョン 3.3.7 と PyQt バージョン 3.5.5-29 を使用しています。

0 投票する
2 に答える
8526 参照

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 は (ウィンドウのタイトルのように) しばらく光って自分自身をペイントする方法を知らないからです。私が必要としているのは、「ガラス」をきれいにする一般的な方法です。

0 投票する
2 に答える
10076 参照

python - Windowsで実行されているPyQtアプリでコンソールウィンドウを非表示にするにはどうすればよいですか?

確かにこれは可能ですか?PyQt のチュートリアルとドキュメントを探してきましたが、答えが見つかりません。おそらく、検索クエリを別の方法で表現する必要があるだけです。

[編集]

答えてくれたPEZに感謝します-Win32の第20章でのPythonプログラミングで.pywの拡張機能の使用を含む詳細

0 投票する
8 に答える
44134 参照

ide - PyQt アプリの開発にはどのようなアイデアが適していますか?

PyQt アプリの開発にはどのようなアイデアが適していますか?

0 投票する
1 に答える
7654 参照

python - pyqt インポートの問題

Pythonでこれを行うのに問題があります:

私が得るトレースバックは

ファイルの後半で dcopext をインポートして、インポートを切り替えようとしましたが、どれも機能しませんでした。提案をありがとう。

編集: 1 つの問題に絞り込みました: 内部で qt3 を使用する dcopext を使用していますが、PyQt4 を使用したいと考えています。

0 投票する
5 に答える
11262 参照

qt - QTableWidget にセルの編集を終了するように指示するにはどうすればよいですか?

QTableWidget でいくつかの値を選択するためのポップアップ メニューを表示しています。一番下の項目は「リストの変更」エントリです。それを選択すると、新しいウィンドウが自動的に表示され、QComboBox が消え、セルが Qt::DisplayRole 状態に戻ります。

QTableWidget.edit()現在、Qt にはとのような素敵な API 呼び出しがすべてあります。QTableWidget.editItem()私が本当に探しているのは でありQTableWidget.endEditing()、できればセルのインデックスを指定せずに、この呼び出しを使用して取得できます。

…しかし、現在のセルが常に編集中のセルであることを保証できるかどうかはわかりません。

この種のエディタを閉じる API はありますか?

ポップアップメニュー

0 投票する
6 に答える
11054 参照

python - PyQt:GUIをフリーズせずに進行状況を更新するには?

質問:

  1. GUI をロックせずに (「応答なし」) スレッドの進行状況を追跡するためのベスト プラクティスは何ですか?
  2. 一般に、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 を使用していなければ、彼の解決策が私の選択だったでしょう。