問題タブ [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 投票する
3 に答える
91481 参照

c++ - QDialog exec() と結果値の取得

QDialog同様の機能を実装するためにサブクラス化しましたQMessageBox(カスタマイズを可能にするためにこれが必要でした)。テキスト メッセージと [OK]、[キャンセル] ボタンがあります。exec()ブロックするために使用するダイアログを表示しています。では、ユーザーが [OK] または [キャンセル] をクリックしたときに true/false の値を返すにはどうすればよいでしょうか?

ボタンを接続してからsetResult()、クリックすると結果の値を返すようにしましたが、

  1. ボタンをクリックしてもダイアログ ボックスが閉じない
  2. 戻り値が正しくありません。以下は私が書いたコードです。exec/result 部分が間違っていると思いますが、修正方法がわかりません。

ユーザーはクラスをインスタンス化しshowYourself()、値を返すと予想される呼び出しを行い、ダイアログを閉じます (そして削除します)。

部分的なコードを投稿しました。さらに必要な場合はお知らせください。完全版を投稿します。

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

c++ - MainWindow内からのQDialogのフルスクリーンは時々しか機能しません

(Qt4.8およびUbuntu12.10UnityでのC++によるテスト)

QDialogを表示するメインウィンドウがあります。ダイアログウィンドウを全画面表示にすると、適切なウィンドウのように見えても、常に機能するとは限りません。つまり、ウィンドウはフルスクリーンで表示される場合がありますが、たまにしか表示されません。

誰かアイデアがありますか?Qtは、すべてのX環境で機能するとは限らないと述べていますが、それほど悪くはありませんね。

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

qt - Qt の問題 - モーダル QDialog を閉じた後にマウス ボタンを離す

親ウィジェットは、モーダル QDialog が閉じられた後の最初のマウス クリックに応答しません。QDialog は、mousemoveevent() で done() を呼び出すことによって閉じられます。これにより、ダイアログが閉じられた後もマウス ボタンが押されたままになり、2 回目以降のクリックが機能します。普段通り。

これまでの私の発見:

  1. done(int)で呼び出された場合MouseReleaseeEvent()、すべてが期待どおりに機能します

  2. で既に閉じられているためQDialog、イベントが不足しているようですMouseButtonRelease(イベントが発生した後に予想されます) 。これにより、親ウィジェットのマウス イベントが台無しになります。MouseButtonPressQDialogMouseMoveEvent

私の意図は、QDialogマウスが押されて特定の位置に移動したことを検出すると、スライドして閉じることができる a を作成することです。

以前に遭遇した人、または何が起こっているのかについて何か知っている人は、アドバイスをいただければ幸いです。

どうもありがとう。

また、ここに質問を投稿するのはこれが初めてです。提供すると思われる情報を見逃していた場合はお知らせください...

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

qt - フローティングツールバー付き QDialog

QDialogQtでフローティングツールバーを作成するにはどうすればよいですか?

QMainWindowでのウィジェットとしてのツールバー付きの添付はQDialog適していません。

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

qt - QMainWindow / QDialog(Qt 4.8)の移動の終了を検出します

X11でQt4.8.3を使用しています。

ユーザーがウィンドウを画面上でドラッグして終了するタイミングを知る必要があります。これは、最終的な位置を読み取り、最終的にアニメーションを開始してウィンドウの位置を「許可された」位置に調整するためです。

QWidget::moveEvent小さな動きごとにが呼び出されることに気づきましたが、ユーザーがマウスボタンを離して動きが完全に終了したときにのみ位置チェックを実行する(そして最終的にはアニメーションを開始する)必要があるため、これは非常に不便です。

これが本当の問題です。タイトルバーはQtではなくOSによって制御されているため、ユーザーがタイトルバーをクリックしたときにマウスリリースイベントを検出する(またはマウスボタンのステータスを取得する)方法がないようです。…でも試してみましたQWidget::x11event(XEvent* e)が、イベントはウィンドウ内でのみ収集され、タイトルバーも収集されません。

誰かがこれを達成する方法を知っていますか?

タイトルバーを自分で再実装する必要があるのではないかと思います…残念です…</p>

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

qt - QWidget ペインティングキャッシュをフラッシュするには?

カスタム スタイルの QMessageBox に取り組んでいます。メソッド Polish() のカスタム QStyle クラスで、次のように呼び出します。

半透明の境界線を使用しない限り、これは正常に機能します。半透明の部分は、再描画のたびに暗くなります (たとえば、[詳細を表示]/[詳細を非表示] を何度も押すと)。

更新:メッセージボックスを移動すると、「暗すぎる半透明のコンテンツ」も移動することに気付きました。したがって、QWidget ペインティング キャッシュをフラッシュしたい - このようなものが存在する場合 (バッキング ストア??)。

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

python - PyQt:QDialogでサイズ変更と最大化を防ぎますか?

PyQtのQDialogがサイズ変更または最大化できないようにするにはどうすればよいですか?ウィンドウのサイズを変更したくありません。

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

qt - オブジェクトメソッドにアクセスするための QPointer

QPointer関連していない別のオブジェクトからオブジェクトメソッドにアクセスするために使用すると、奇妙な問題が発生します。

よりよく説明するために、小さな例を用意しました。

QWidgetシンプルに Widget_A と Widget_B の2 つを作成しましたQDialog

Widget_B から Widget_A の public メソッドにアクセスする必要があります。割り当てのために、widget_a のポインターを widget_b のメソッドに渡しましQPointerた。Widget_A には、QLineEditWidget_B からクリアしたい が含まれています。

問題は、pushButton_B を押しても lineEdit_A に何も起こらないことです。コンソールには問題が表示されないため、最も明白な理由は、Widget_B が、私が渡したオブジェクトではなく、別の Widget_A オブジェクトで動作していることです。

QWidget_A から QWidget_B への接続も作成したので、lineEdit_A を編集すると、label_B テキストがそれに応じて変更されます。これは機能します。

質問する前QPointerに、実際のプロジェクトでは Widget_A が削除される可能性があるため、 が必要です。どこが間違っているのか説明してもらえますか? 別の方法を選択する必要がありますか? ありがとう。いくつかのスニペットに従ってください

widget_a.h

widget_a.cpp

widget_b.h

widget_b.cpp

dialog.h

ダイアログ.cpp

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

c++ - 静的シングルトンクラスでプログラムでexecメソッドから戻る方法

SBC6000x ボードで Qt アプリケーション (Qt バージョン 4.7.3) を開発しています。

QDialog から派生した MessageBox クラスがあります。このクラスをシングルトンにしました。

メッセージボックスを表示するときはいつでも、.exec メソッドを使用して表示しています。

メッセージボックスを次々に表示する必要がある場所はほとんどありません。

したがって、新しいメッセージ ボックスを表示するには、前のメッセージ ボックスを閉じて新しいメッセージ ボックスを表示する必要があります。

たとえば、メッセージボックスが開いていると同時にバックグラウンドからエラーが発生した場合、現在表示されているメッセージボックスを閉じて、エラーのあるメッセージボックスを表示する必要があります。

前のダイアログを閉じるために、メッセージ ボックス クラスから CloseDlg メソッドを公開し、それを閉じようとしました。

この CloseDlg 内で、完了信号を発しています。

そしてそれを

私の表示方法は次のとおりです:-

再び showMsgBox を呼び出すと、次の警告が表示されます。QDialog::exec: 再帰呼び出しが検出されました

問題は、前の exec 呼び出しから戻らないことです (上記の // にコメントしたように、戻らない限り)。

finished() イベントの代わりに close()、accept()、reject() メソッドで同じことを試みましたが、何も機能しませんでした。

前のexe呼び出しから戻り、上記のシナリオを達成する方法は何ですか? どんな助けでも大歓迎です。

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

python - PyQt - QDialogが表示されていることを確認する方法は?

私は問題があります。私はこのコードを持っています:

したがって、Ball() と言うと、QDialog にボールが描画されます。そして、これが完了するQDialogと、無限ループでボールを動かしています。みたいなことQDialog.isVisible()言いたいです。

親ダイアログまたはフォーム、または子ダイアログまたはフォームがありません。これだけQDialogです。を使うのはばかげていることはわかっていますがQDialog、 以外のものを使用することは許可されていませんQDialog