問題タブ [qdialog]

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 投票する
1 に答える
432 参照

python - PyQt複数のQDilaogクラスのシグナルキャッチ

matplotlib ウィジェットを使用してデータをプロットするために使用する複数の QDialog ウィンドウを持つ PyQt Gui アプリケーションがあります。これは私が使用しているコードです。

発せられたシグナルは 1 つだけキャッチされます。QDialog が最後に作成されたものは、発行されたシグナルをキャッチします。TempBoxダイアログが最後に作成された場合NewTemp_signalは がキャッチされ、RealBoxダイアログが最後に作成された場合NewReal_signalは がキャッチされます。しかし、他の信号はキャッチされません。両方のシグナルをキャッチしてすべてのダイアログを更新するにはどうすればよいですか? ありがとう

ダイアログ ウィンドウ クラス

新たな窓を生み出す機能

別の関数で私は信号を発します

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

qt - ウィンドウがモーダルによってブロックされているかどうかを確認するにはどうすればよいですか

いくつかのモーダルダイアログと、exec()モーダルのメインダイアログがあります。メインウィンドウがモーダルによってブロックされているかどうかを確認するにはどうすればよいですか?

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

c++ - QWidget::setFixedHeight() が機能しない/まだサイズ変更可能

私は最近 Qt5 に移行しましたが、Qt4 では得られない問題に遭遇しました。

高さは固定で幅はサイズ変更可能なモーダル ダイアログがあります。デモンストレーションのために、ここに簡素化されたバージョンがあります。

setFixedHeight の代わりに setMinimumHeight と setMaximumHeight を使用している場合でも、サイズを変更できます。

上記の例では、qDebug に供給されるすべてのものは等しいことが示されています。最小高と最大高が等しい場合、ダイアログはサイズ変更できません。しかし、ここにある。

ここで、setFixedHeight を使用しないとダイアログのサイズを完全に変更できますが、setFixedHeight を使用すると、ダイアログのサイズを特定のポイントまでしか変更できないことに注意してください。

更新:上記のように、、および currentbuttonを出力するスロットに接続しました。また、ダイアログのサイズを変更すると、現在の高さが最大の高さを超えることがあります。これはどのように可能ですか?dialogminimumHeightmaximumHeightsizeHint.height()heightqDebug()

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

qt - QDialog でメモリ リークが発生している理由を検出できません

ユーザー入力用にカスタマイズされた QDialogs を使用して Qt を使用するプロジェクトを行っています。開発ボックスのハードウェアの制約により、アプリのメモリ使用量を監視したいと考えています。ダイアログの実行方法。

ダイアログはローカル変数であるため、スタック上に作成され、関数が終了するとすぐに破棄されることを期待しています (5 行目以降)。'Memory (Working Set)' and 'Memory (Private Working Set)'アプリがダイアログを繰り返し開いたり閉じたりすると、そのメモリ使用量が増加し、初期値 [タスク マネージャーの列] に戻ることはありません。Application Verifierを使用して、すべての基本的なテストを有効にしましたが、エラーは表示されません。メモリ パターンは次のようになります (数値は図のみで構成されています)。

  • アプリケーションの開始 (ワーキング セット = 12000K、プライベート セット = 6000K)
  • Dialog-1 を開く (ワーキング セット = 14000K、プライベート セット = 7000K)
  • ダイアログを閉じる (ワーキング セット = 12010K、プライベート セット = 6005K)
  • Dialog-2 を開く (ワーキング セット = 14020K、プライベート セット = 7000K)
  • ダイアログを閉じる (ワーキング セット = 12010K、プライベート セット = 6008K)
  • Dialog-3 を開く (ワーキング セット = 14080K、プライベート セット = 7010K)
  • ダイアログを閉じる (ワーキング セット = 12040K、プライベート セット = 6008K)
  • ...

では、問題の根本原因を追跡するためのアイデアはありますか? (実際には、 QFileDialog の静的メソッドを使用するときにも同様の問題に直面しておりgetOpenFileNameここgetSaveFileNameでいくつかの議論を見つけましたが、解決されていないようです)

編集ダイアログで QFormLayout を使用し、 でウィジェットを追加しますlayout->addRow("label text", mywidget);。オブジェクトの破棄でラベルをきれいに削除できないかどうかは疑問です。

編集同じ add-widget 戦略を使用して、QDialog に 10 個の QLineEdit があるテスト プログラムを作成しました。問題はまだ存在します。(ダイアログを頻繁に作成して閉じると、このテスト プログラムで問題が発生します。1 秒間に 10 回と言います)

メインウィンドウ.h

メインウィンドウ.cpp

プラットホーム

  • Win 7 x64、MinGW 4.7.2 x64 (rubenvb-build)、4GB RAM
  • Qt 4.8.5 (上記のツールチェーンを使用してネイティブにビルド)
  • Qt-Creator 2.6.1 (上記のツールチェーンを使用してネイティブにビルド)
0 投票する
2 に答える
12651 参照

qt - Qtでウィンドウを表示し、閉じたらすぐに削除する方法は?

非常に簡単な例として、ボタンを押したときに Qt でダイアログを表示したいとします。これの通常のパターン (私が現在取り組んでいるアプリケーションで) は次のようです。

.NET および Windows フォームから来ている (そして、クラスの他の場所からそのオブジェクトにアクセスする必要がないため) 次のパターンは、私にとってより馴染み深いものです。

ローカル変数は、別のインスタンス フィールドがないこと、およびウィンドウが必要以上に長くメモリ内に留まらないことを意味します。それを C++ に直接変換すると、後から誰も解決しないので、少し見苦しくなります。私は次のことを試しました:

  1. shared_ptr. うまくいきませんdelete。メソッドが終了するとすぐにウィンドウが削除されます。つまり、新しいウィンドウが一瞬表示され、再び消えます。あまり良くない。

  2. exec()の代わりにshow()。これはモーダル ダイアログでは機能しますが、ドキュメントでは、イベント ループも停止し、QApplication::processEvents()更新が必要な場合は定期的に呼び出す必要があることを暗示しているようです。私はここでほとんど理解していませんが、あまりにも良くないと思います.

  3. deleteLater(). 悲しいことに、ウィンドウを表示するだけではブロックされないdeleteLaterため、表示されるとすぐに消えてしまいます。

ウィンドウを閉じるときにウィンドウをクリーンアップする良いオプションはありますか?

0 投票する
9 に答える
19468 参照

c++ - Enter キーで QDialog を閉じないようにするにはどうすればよいですか (Qt 4.8.1)

私は を持ってQDialogQDialogButtonBoxます。[ OK ] ボタンと[キャンセル]ボタンがアクティブになります。時折、ダイアログの状態に基づいて [OK] ボタンを無効にしたり非表示にしたりします。何をしても、Enter キーを押すと常に [OK] ボタンがアクティブになるようです。私は本当にこれが起こることを望んでいません。私が試してみました:

  • ボタンを表示/非表示/有効/無効にするたびにデフォルトおよびautoDefaultプロパティをfalseに設定する
  • [OK] ボタンにイベント フィルターをインストールして、キー イベント (押されたものと離されたもの) をインターセプトし、戻る、入力する、スペースを入力する
  • ボタンのフォーカス ポリシーをNoFocusに設定する

上記のすべての組み合わせで、Enter キーは引き続きダイアログを受け入れます。これをブロックする方法を知っている人はいますか? このような単純なものをブロックできるように思えますか?

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

qt - QDockWidget が QDialog にドッキングされていない

QDialog で QDockWidget を使用するのは正しいですか? 使用しようとすると、ドック ウィジェットがダイアログ ウィンドウにドッキングされませんでした。アプリケーションを実行すると、ドック ウィジェットのサイズを変更できませんでした。

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

qt - Qt::CustomizeWindowHintを使用してQDialogでモーダル動作を維持する方法は?

setWindowFlags で CustomizeWindowHint を使用してすべてのフレームを無効にすると、QDialog のモダリティが機能しません...

3 行目にコメントすると、まったく機能しません。私は残りの部分に集中します。どうすればそれを機能させることができますか?

または、これを行わずにボタンとフレームを削除する方法は?

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

python - pyside のダイアログから what'sThis を削除する

C++ でこれを行うことについてかなりの数の質問を見つけましたが、Python/PySide で行うことについては何もありません。「?」を削除したい
ここに画像の説明を入力
私のQDialogの上からボタン。を使用することsetWindowFlags()はわかっていますが、引数として何を渡す必要があるかわかりません。

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

c++ - Qt ダイアログはいつ QDialog::Rejected を返しますか

困っています。ログインフォームとして QDialog があります。ログインすると、フォームが閉じてメインウィンドウが表示されます。私のログインは問題ありませんが、閉じると QDialog::Rejected が返されます。

QDialog::Rejected が返されないようにするにはどうすればよいですか? また、いつ QDialog::Rejected を返すのでしょうか?

ログイン時のコード:

主要() :

必ず断られます。