問題タブ [pyqt5]
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 - Qt (PyQt) でリソースをバイト配列に読み込む
リソースファイル(ファイルで宣言され、モジュールにコンパイルされたものassets/font-awesome/fonts/fontawesome-webfont.ttf
など)をバイト配列、バイト文字列(b '')、および文字列( '')に読み込むにはどうすればよいですか?assets/jquery/js/jquery-1.11.0.min.js
myresources.qrc
pyrcc5.exe
myresources.py
カスタム スキーマ ハンドラの実装に成功しました ( myscheme://controller/action/?param1=100 のようなリクエストを処理し、QNetworkAccessManager
およびからクラスを派生させますQNetworkReply
)。後でこのアプリがオンラインになった場合に、(より) シームレスな移行プロセスを経験するために、これが必要でした.
ここで、リソース (html、css、js、画像、フォントなど) 内のファイルをQWebView
カスタム スキームに提供する必要があります。私は試してみましたがQFile
、それはreadAll
方法です。
これは私のコードです:
f.readAll()
何もしないようです。
python - QAbstractListModel を QML に渡すことができません
私はPyQt5 を使用して、この PySide チュートリアルにできるだけ近づけています。コードを実行すると、次のエラーが表示されます:ReferenceError: pythonListModel is not defined
リストに項目がなく黒く表示されます。
これは私のコードです
私のモデルとラッパー
そして私のQML
Qt が contextProperty を見つけられないのはなぜですか?
qt - 選択したアイテムがQML QListViewでいつ変更されたかを知る方法は?
QtQuick 2.0 と QML ListView を使用していくつかの項目を表示していますが、ユーザーがいつ別の項目を選択したかを知る必要があります。ユーザーがデリゲートのマウス領域をクリックしたときに信号を発する、つまり
ただし、ユーザーがマウスを使用してアイテムを選択した場合のみですが、ユーザーが矢印キーを使用した場合は機能しません。
ドキュメントを調べて、currentIndex
が変更されたときにどの信号が発せられるかを調べましたが、何も見つからないようです。似たようなものを探していますQListWidget::itemSelectionChanged()
が、QML ListView にはそれがないようです。
python - PyQt を使用して、ウィンドウ サイズを監視し、レイアウトを調整するための推奨される (効率的な) 方法は何ですか?
私は PyQt にアイテムのグリッドを持っています。ユーザーがウィンドウ サイズを変更すると、それに応じて列の数を増減する必要があります。行数はスクロールエリアによって処理されるため、y 方向の変更について心配する必要はありません (それが重要な場合)。
QMainWindow の実装内で、すべてのウィンドウ調整に対してトリガーされる resizeEvent() 関数をオーバーライドできることがわかっています。ただし、それを使用して毎回グリッドを再構築するのは、非常に非効率的です。関数がどのように機能するかをテストするためだけに、resizeEvent に単に文字列を出力させました。これにより、ウィンドウの調整が少し遅くなり、視覚的に不完全になりました (スムーズではなくジッター)。おそらく、ウィンドウ サイズに対して単純な除算操作を実行して、列数を変更するのに十分なほど大きくなったか小さくなったかを確認しますが、それでも調整ごとに 100 回実行すると、遅延の問題が発生する可能性があります。グリッド全体の再構築には 1 秒もかかる場合があるため、ユーザーがウィンドウを操作しているため再構築する必要がないことが望ましいでしょう。
それを行うためのより効率的な方法はありますか、それとも resizeEvent が私の唯一のオプションですか? 理想的には、ユーザーがウィンドウの調整を終了したときにのみトリガーされるイベントが必要であり、発生したほぼすべてのピクセルの動きに対してトリガーされるイベントではありません (1 秒間の調整ごとに数百または数千回になる可能性があります)。 .
私は PyQt5 を使用していますが、PyQt4 に精通している場合は、PyQt5 のコンテキストで PyQt4 ソリューションを理解できます。C++ Qt4/5 ソリューションでも同じです。
python - インタラクション時に Pyplot がクラッシュする
ボタンを使用して更新できるpyplotがあります。これはうまくいきます。しかし、pyplot を操作しようとすると (移動、ウィンドウのサイズ変更、ズームなど)、クラッシュします。
日食が言うことです。
以下は、障害を再現するための最小限の実行例です。私はpython初心者なので、問題は私のコードにあると思います。
システム: Win7 64、Python 3.3.5、PyQt 5.2.1、Scipy スタック 14.4.1
plt. show() の代わりに plt. draw() を使用しても、顕著な違いはありません。
qt - QLabels が上書きされ、削除されないのはなぜですか? - 画像を見る
UI の QGridLayout に問題があります。ここでは、ユーザーがロードしたファイルに応答する UI を作成しようとしています。初めてロードすると、ファイルの内容を反映して QGridLayout が更新され、すべて問題ありません。ただし、次にファイルがロードされたときに、グリッド内のウィジェットが削除される必要があります (これを行うには、deleteLater() を呼び出します)。起こっていることは、それらが上書きされているということです。
画像が役立つ場合があります。これは、2 つの異なるファイルを繰り返しロードした後に表示されるものです。「Transmit Messages」と「Field」のテキストに問題がないことがわかります。
私が使用しているコードは次のとおりです。エラーがここではなく、コードの他の場所にあると誰かが感じた場合は、さらに投稿できます。しかし、問題のあるロジックはここにあるようです。特に、各呼び出しで新しい QLabel を作成することに問題はありますか?