問題タブ [qt-signals]
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++ - Qt、多重継承、ラッパー、またはイベントフィルター
MDIまたはQDockwidgetベースのアプリに埋め込む必要のあるQGlWidgetベースの表示ウィジェットがいくつかあります。ただし、表示ウィジェットでMDI / Dock固有のイベント(最小化/ドックなど)の一部を処理する必要があります
オプションは次
のとおりです。QGlWidgetおよびQMdiSubWindow/QDockWidgetから表示ウィジェットを乗算継承します。乗算継承とシグナル/スロットに関する問題はありますか?
ディスプレイをQMdiSubWindow/QDock派生ウィジェット内にカプセル化しますが、ディスプレイのすべての外部関数をMdi/Dockラッパーウィジェットでラップする必要があります。
新しいウィンドウを作成するときは、一時的なMdi / Dockウィジェットを作成し、ディスプレイを接続して表示する前に、すべての特殊信号をディスプレイのスロットに接続します。ただし、これはイベントでは機能しません。
QGlWidgetでQMdiSubWindow/QDockWidget固有のシグナルを受信できるQSignalMapperの魔法
qt - クラスの1つが削除されると、Qtのシグナルは自動的に切断されますか
サイドの1つが削除されたときに、Qtはオブジェクト間の接続を自動的に削除しますか?
たとえばconnect (A .. , B ..)
、A (ポインター) が削除された場合、または B が削除された場合、接続は切断されますか?
デストラクタで明示的に disconnect を使用する必要がありますか?
qt - QTableWidgetのcellClickedシグナルが機能しない
アプリケーションにQTableWidgetがあり、cellClicked(int、int)シグナルをスロットに接続しました。ただし、セルがクリックされても、スロット内のこのコードはまったく呼び出されません。これを解決する方法を教えてください。これは私のコードです:
ありがとう、Rakesh。
qt - Qt:シグナルの戻り値は機能しますが、公式ドキュメントで不可能/禁止されているのはなぜですか?
Qtのドキュメントによると、シグナルの戻り値は不可能です。
シグナルはmocによって自動的に生成されるため、.cppファイルに実装しないでください。リターンタイプを持つことはできません(つまり、voidを使用します)。
関連するSOの質問:
ただし、私の試行(Qt 4.8.1)から、戻り値が機能することがわかります。
- 信号/スロットが同じスレッドにある場合、ConnectionTypeは次のようになります。
Qt::AutoConnection
- 異なるスレッドの信号/スロットで使用する必要があります
Qt::BlockingQueuedConnection
だから私のコードでは、私はシグナルを呼び出します
信号mocは、を返しますQString
。
これは、それが戻るスロットモックですQString
これらはすべて非常に簡単なようですが、なぜこのドキュメントとの矛盾があるのでしょうか。戻り値を使用する場合の問題はどこにありますか?言ったように、私のコードではこれはうまくいくようです。
c++ - Object::connect: obj が shared_ptr として返される場合、そのようなシグナルはありません
Qt のシグナルとスロットを使用すると、エラーが発生します。
私の他connect
のものは正常に動作し、考えられるすべてをチェックしました(Qtシグナルとスロットをデバッグする20の方法も参照)。shared_ptr
個人的にforはこのサンプルで初めて使用するのでQt
、使い方に問題があるのではないかと思いますshared_ptr
。ご意見をお待ちしております。
コンクリートFvOverlay.cpp
このオーバーレイは、abstractFvOverlay.cpp でインスタンス化されます。
オーバーレイ.h
ご参考までに、ここで使用する理由は、shared_ptr
インターフェースベースのプログラミングを行いたいからです (これがこのスタイルを呼び出す公式の方法であるかどうかはわかりませんが、私が意味するのは、抽象クラスで動作を定義し、それらを説明するいくつかの動作に対してのみです。 Java が許可する具象クラス)。
c++ - 新しい SIGNAL を持つ QEditLine のサブクラス
オブジェクト識別子を送信する新しいシグナルを定義できるように、QEditLine をサブクラス化しようとしています。現時点では、親シグナルを新しいクラスのスロットに接続し、そのスロットから追加のオブジェクト識別子を使用して適切な新しいシグナルを発信します。一つ理解できません。問題は、新しいシグナル関数自体を定義する方法がわからないことです。そこに何を入れたらいいのかわからない。つまり、その引数は知っていますが、関数として何をすべきかわかりません。私はこれを初めてやっているので、非常にばかげているように見えるかもしれません ;p でも、私は本当にそこに行き詰まりました >.<. 誰か手がかりを教えてください。おそらくとても簡単な問題です。
ありがとう
qt - 形状変更ダイアログボックス
形状を変更するダイアログ ボックスを使用しようとしていました。つまり、ボタンをクリックすると、ダイアログ ボックスのサイズが大きくなり、詳細が追加されます。そのために、ボタンに次のコードを書きました。
しかし、私のダイアログボックスには何の変化もありません。この場合、どうすればよいでしょうか。
hide() 関数を使用してグリッドに配置することで、余分な詳細を非表示にしました。余分な詳細は隠されていますが、ウィジェットのサイズは変更されていません。
解決策を教えてください
qt - QMLシグナルが2回実行されました
私はQMLとQML信号に不慣れで、自分では解決できないというこのばかげた問題を抱えています。シグナルをトリガーしてonTouch
2回実行しているため、アプリがクラッシュする二重応答が生成されます。
これが私のQMLコードです:
//LabelKey.qml
私はこれを持っており、TextField
そのIDはtextFieldKey
上記の投稿を含む別のQMLにあります。主なアイデアは単純で、各キーが上記のコードのコンポーネントであり、これで押されたキーの値を出力する必要があるキーボードTextField
です。
問題は、私が言ったように、シグナルが2回呼び出され、TextField
毎回値の2つの文字でいっぱいになることです。
信号の適切な使用方法などで何かが足りないのかどうかわからないので、助けてください。
ありがとう!
c++ - (Qt)QTextEditウィジェットのテキストがQTabWidgetから変更されたかどうかを確認する方法
QTextEditウィジェットを管理するQMainWindowを親とするQTabWidgetがあります。
タブの1つでコンテンツがいつ変更されたか、どのタブで変更されたかを知りたいのですが。私は解決策をグーグルで検索しようとしてきましたが、コードの行が何度も変更され、クラスのアーキテクチャが変更されました。
私の最後の試みは:
ただし、スロット「marquerChangement()」は呼び出されません。何か案は?
c++ - 子プロセスがクラッシュした場合、QProcess :: finishは発行されますか?
ドキュメントにはerror()
、子プロセスがクラッシュした場合にシグナルが発行finished()
されると記載されていますが、同様に発行されるのでしょうか、それとも正常に終了した場合にのみ発行されるのでしょうか。