問題タブ [qprogressbar]
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.
c++ - ロジック層のクラスを介して QProgressBar の更新を転送する適切な方法は何ですか?
私はQProgressBarを使用していますが、この手順でロジック レイヤーの特定のクラスから進行状況を送信する方法を既に理解しています。
- ビューレイヤークラスで接続を設定します。
- ロジック層クラスで信号信号を作成します。
- QObjectになるようにロジックレイヤークラスを変更します。
- ロジック層の基本クラス クラス コンストラクターとして QObject を呼び出します。
ここで、ロジック層の特定のクラスが別のクラスを介して進行状況を送信するようにします。
例えば:
- クラス A (view-layer 内): クラス B で進行状況の接続を作成します。
- クラス B (ロジック層): クラス C で進行状況の接続を作成します。
- クラス C: クラス A (view-layer) で表示できるように進行状況を更新します。
クラスBからCへの接続と信号を使用するためにこの手順を模倣しようとしましたが、うまくいかないようです。
どんな答えでも大歓迎です
qt - ウィンドウを起動し、データを処理し、ユーザーの操作なしで閉じますか?
プログラムが最初に起動するときに、コンポーネントの更新が必要になる場合があります。更新タスクは、ユーザーの操作なしで自動的に実行される必要があります。
進行状況を表示する簡単なウィンドウを表示したいと思います。完了すると、ウィンドウが閉じられ、メインウィンドウが起動します。
を使用してQDialog
、コストのかかるコードをinit関数に入れてみましたが、もちろんウィンドウがブロックされただけで、完了するまで表示されませんでした。
実行時にシグナルが送信されないexec()
ため、GUIウィンドウを実行した直後に処理を開始することはできません。
QProgressDialog
ここでは機能するかもしれませんが、実際には複数のプログレスバーを配置したいと思います。
何か案は?
c++ - Qt QProgressBar - テキストの整列
Qt の QProgressBar のステータス テキストを揃える方法について何か提案はありますか? デフォルトでは、Windows ではバーの右側に表示されますが、オブジェクトを拡張して自分でステータス ラベルを実装することなく、バーの上またはバー自体の中に配置することをお勧めします。
以下のスクリーンショット:
c++ - QTでビューレイヤーをロジックレイヤーから分離する適切な方法は何ですか?
私のメインウィンドウには、中央にQGraphicsViewを備えたサイドGUIがあり、GUIによってトリガーされ、QGraphicsViewに影響を与えるさまざまな計算を行うロジッククラスがあります。一部の計算は重いためGUIがスリープ状態になり、QProgressBarやその他のQtアイテムがあり、計算中にデータが提供されるため、GUIプロセスがスリープ状態になると、これらのアイテムは更新された結果を表示するのは次の場合のみです。プロセスが終了しました。ロジッククラスとUIが同じプロセスであるため、理解しています。
私はこれを修正しようとしていました:私の古い質問とMayaのプログラミングブログ
しかし、重い計算を実行するメソッドがいくつかあり、それらのいくつかは値を返すため、両方が私のコードには不十分であることがわかりました。どちらも次のようなことを話している:connect(thread, SIGNAL(started()), worker, SLOT(process()));...
よりthread->start();
、しかし私のコードには単一のメインプロセスがないので、そのように作業したい場合は、各プロセスメソッドの前にスレッドを作成する必要があることを理解していることから、ロジッククラスを移動しますこのスレッドに接続し、プロセスメソッドをスレッド開始メソッドに接続します。これは、これを行うための適切な方法としては思えません。
そこで、ロジックレイヤーをビューレイヤーから完全に分離する方法を求めます。ロジックレイヤーを呼び出したメソッドは別のプロセスで実行されるため(すべてのロジッククラスメソッドで同じです)、ビューレイヤーは実行されません。寝る。
注:同期の問題はありません。計算が行われると、一度に機能するのはそれだけです。
私の問題の例:
python - Pyqt4 - QProgressBar 関数がデータの処理をループしている間、毎回どのように示すか
最初は機能しましたが、データの処理をループする関数が再呼び出しされたときは機能しませんでした。私は2つのpythonプログラムを持っています。メインは進行状況バーを表示し、2 番目はデータの処理をループします。私はstackoverflowとgoogle全体を調査し、解決策を見つけるために一生懸命努力しました。最も近い解決策は、「QProgressBar が読み込みを完了した後の原因不明の遅延 2」という質問でしたが、私の問題には適用できません。QApplication.processEvents() も適用しようとしましたが、成功しませんでした。
メインプログラム…etc…
/li>私の2番目のpythonプログラム...など...
/li>
c++ - Qtプログレスバーが必要以上に増加する
だから私が欲しいのは、タイマーでプログレスバーをインクリメントすることです。しかし、どういうわけか、プログレスバーが必要以上に増加します。
メインウィンドウ.h:
メインウィンドウ.cpp:
デバッガーで、プログレスバーの値が 6 であるのに対し、カウンターの値は 4 しかないことに気付きました。また、最初に 1、次に 2、次に 2、次に 1 というようにインクリメントします。私は何を間違っていますか?!
編集:プログレスバーだと思います。アクションを次のように変更しました。
コメントアウトしたので、タイマーは開始されません。アクションボタンをクリックすると、常にプログレスバーが1、2、2、1の順にインクリメントされます。同じ動作です。だからタイマーじゃない!
qt - QProgressBar のレンダリングがうまくいかない
qt デザイナーのフォームに qprogressbar を追加し、進行中の状態を表示するために最小値と最大値を 0 に設定しました。しかし、この写真に示すように、アプリケーションの進行状況バーを実行すると、影のマークが表示されます...
コードから QProgressDialog を追加すると同じことが起こります..誰かがこの問題を回避する方法を教えてくれますか?
Win 7 64ビットでqt Creator 2.8.0でqt 4.8.4 sdkを使用しています。