問題タブ [qsignalmapper]
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.
qt - スロットに引数を渡す
たくさんのQActionsとQMenusでmouseReleaseEventをオーバーライドしたい...
だから私はスロットに引数を渡したいと思いonStepIncreased
ます(あなたが想像できるように、それらは1,5,10,25,50です)。私がどうやってそれをすることができるか知っていますか?
python - シグナルマッパー PyQt を理解する際の問題
そのため、システム上のいくつかのファイルに基づいてオプションのメニューを生成しています。メニューのオプションを動的に生成する必要があるオブジェクトのリストリストがあり、作成を行っている関数に使用するオブジェクトを知らせる必要があります。いろいろ調べた結果、以下の記事を見つけました。私の担当者はまだ高くないのでコメントできませんでした: How to pass arguments to callback functions in PyQt
これを実行すると、シグナル マッパーが正しく動作しません。handleButton を正しく呼び出していません。シグナルマッパーを正しく使用する方法についてのアイデアはありますか?
編集:
古いスタイルのシグナル/スロット接続を使用することで、これが修正されることがわかりました。
と
新しいスタイルの接続を間違って使用していませんか?
c++ - QSignalMapper を使用して親のクラス メソッドに QString を渡す
特定のシグナルのラベル画像を変更するメソッドを持つ親クラスがあります。たとえば、QComboBox で何かが発生した場合... (valueChanged、アクティブ化)
それから私はこの子供を持っています:
今、readCombo
私は文字列を読み取り、それを渡して画像を変更したいと考えています:
しかし、これによりNo such Signal
、No such Slot
または大文字のいずれかが得られますIncompatiple sender/receiver arguments
構文は実際には直感的ではなく(imo)、私のケースで機能している適切な参照が見つからないため、これに関する助けをいただければ幸いです(尋ねる前に試行錯誤を繰り返しました)
c++ - QSignalMapper はマップされたトリガーをトリガーしません
最近、QSignalMapper で問題が発生しました。トリガーする信号 (QObject*) をマップできません
現在、qml オブジェクトがkeyboard.qml
割り当てられ、c++ クラスから削除されていますkeyboardManager.cpp
。にkeyboard.qml
は、次の信号があります。
そしてこの機能:
シグナル
状態の変化に関連するすべてのアニメーションが終了したときにトリガーされます
C ++には、メソッドとスロットがあります
beginRemoveKeyboard で、keyboardClosed を endRemoveKeyboard に接続して、メモリを解放し、すべてのポインターを適切に登録解除できるように、次のテストを行いました。
QMLで:
C++ で:
ただし、KeyboardManager::beginRemoveKeyboard を呼び出して取得したとき:
それだけです。KeyboardClosed()
トリガーされることを意味する「削除開始」test()
は呼び出されませんが、呼び出されendRemoveKeyboard(QObject*)
ません。なぜ、どうすれば自分が望むものを達成できるのですか?
c++ - QSignalMapper でセグメンテーション違反が発生する
ボタンを作成し、それを文字列を取るスロットに接続するメソッドを書きたいと思います。
のインスタンスWidget
(のサブクラスのみQWidget
)で、私は次のことを行います:
widget->createButton(SLOT(sendCom(QString))
マッピングがなくても正常に機能し、同様のコードからマッピング構文をコピーしましたが、これも正常に機能します。エラーなしでコンパイルされますが、ボタンを押すとセグメンテーション違反が発生します。何か案は?
編集:peppeが提案したように、valgrindを実行しました。ここに出力があります
これはアドレスを見つけるのに役立ちますが、それでもデバッグ方法がわかりません。
編集:問題は解決しました。より正確にするためにコードを短くしましたが、これにより実際の原因が隠されています
qobject_cast が SIGSEGV の原因でした。なぜそうするのかはまだ明らかにされていません。
c++ - 過負荷の Qt スロットにマップする方法
Qt SLOT をオーバーロードして、 a から発行されたものまたは a から発行された SIGNAL に反応するようにしたいclicked()
SIGNAL
(QPushButton
チェックstateChanged(int)
ボックスQCheckBox
がオンになっている場合にのみ発行される SIGNAL がないため)。
これが私の 2 つの SLOT です。
私は以下をwidget->createButton(SLOT(sendCom(QString), data);
呼び出し、マッピングは正常に機能します。
オーバーロードされたものにもwidget->createCheckBox(SLOT(QString, int), data)
ChechBox の状態を渡したいと思いWidget::sendCom(QString data, int state)
ます。マッピングはどのように行われますか?
qt - Qt QSignalMapper は、マップ内のすべてのアイテムに対して信号を発しています
作成したクラスの QList を受け取る関数があります。この架空のクラスを「Stuff」と呼びましょう。したがって、この関数は Stuff の QList を受け取ります
QList を反復処理し、"Stuff" オブジェクトのプロパティに応じて、次のいずれかを生成します。
1) QLineEdit
2) QCheckBox
3) QComboBox
これは実際のコードではありませんが、これは私が本質的にやっていることです:
問題は、QLineEdit を編集するか、チェック ボックスをオンにするか、コンボ ボックスの値を変更して、ウィジェットのシグナルの 1 つだけをトリガーすると、onStuffChanged(int) 関数が N 回呼び出されることです。ここで、N = の数です。 mSignalMapper のマッピング。
何が起きてる?ループして 10 個のウィジェットを作成すると、10 個のウィジェットのうち 1 つだけをクリックすると、関数が 10 回呼び出され、その 10 回のそれぞれで、操作した 1 つのオブジェクトのみに関連付けられた一意の int が渡されます。したがって、10 個のウィジェットのうちの 1 番目が、一意の int ID が 27 のチェックボックスであった場合、onStuffChanged(int) 関数は、毎回 27 のパラメータで 10 回呼び出されます。