問題タブ [slot]

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

c++ - c++ qt QObject:: connect: そのようなスロットはありません

スロットを次のように定義しました。

そして、次の文を実行したい:

ただし、実行すると次のようになります。

スロットが機能しないのはなぜですか?

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

qt - パラメータに構造体がある QT 信号

私はクラスを持っています:

そして実装:

そして、この信号を次のように接続します。

structパラメータリストにa を含むシグナルを送信するにはどうすればよいですか? を使用する必要があると思いますが、QSignalMapper方法がわかりません。

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

qt - QT: そのようなスロットはありませんか? 新しい makefile を作成するには?

ねえ、私はほぼ一晩中答えを探しましたが、見つけることができませんでした。QT クリエーター アプリケーションで次のエラーが発生しました。私の mainwindow.h 、私の main.cpp 、および私の mainwindow.cpp も投稿します。ヘルプに tp vc projectname.pro) がありましたが、うまくいきませんでした :( だから、泣きそうになった私を助けてください :D スロットごとにメインウィンドウの中央のウィジェットを変更したいだけです ;)

エラー

メインウィンドウ.h

メインウィンドウ.cpp

main.cpp

編集

これは、1 人のクリエーターと、main.cpp のメイン ウィンドウに追加する qwidget クラスの 3 つのスロットで作成した新しいコードです。まだ、スロットがマップされているというエラーが表示されます (a、b、c が存在しません。助けてください: D greez

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

multithreading - Qt (4.8) オートコネクション動作でスロットを呼び出す最も簡単な方法

私はこのようなものを持っています:

次に、次のように、Things を管理するオブジェクトを作成します。

私の質問は次のとおりです。ManyThing のコレクション内のモノは、いくつかの異なるスレッドに散らばっています。Qt::AutoConnection に接続されたシグナルからスロットが呼び出されたかのように、makeThingDoSomething(int) で things_[thingIndex]->doSomething() スロットを呼び出したいと思います。基本的にはこれですが、Thing が呼び出し元とは異なるスレッドにある場合は、Qt のキューイング メカニズムを使用します。

これを設定する最も簡単な方法は何ですか? ManyThings で信号を作成し、Thing の各スロットに接続することもできますが、その信号を発信すると、特定の Thing だけでなく、すべての Thing のスロットが呼び出されます。信号に渡されるインデックス パラメータなどに応じて、同じ信号を異なるオブジェクトのスロットに接続できるように、接続を簡単に設定する方法はありますか? または、実際にシグナルを作成することなく、Qt のシグナル/スロット メカニズムを使用してスロットを呼び出す方法はありますか?

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

qt - Qタイマー。スロットが信号よりも多くのパラメータを持っている場合はどうすればよいですか?

私はゲームを書いています。ティックタイマーによって、このスロットが機能するはずです。

QTimer * timer = 新しい QTimer (これ); connect (タイマー, SIGNAL (タイムアウト ()), this, SLOT (render_cell (MainWindow * m, const std :: string & s, double x, double y, size_t i, size_t j, const std :: string & step)) ); タイマー-> 開始 ();

しかし、ご覧のとおり、スロットはシグナルよりも多くのパラメーターを持っているため、シグナルとスロットのメカニズムは機能しません。何をすべきか?ここでタラ

あなたのアドバイスに従ってコードを調整しました。

これがコード repaint_cells() です

ここにリンクの説明を入力

2日間、なぜボールが1つしか描かれていないのか理解できません。残りのボールは描画されません。

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

c++ - Qt シグナル マッピング: エミッタ オブジェクトの編集

そのため、QPushButton オブジェクトを動的に作成し、それらをマッピングして信号を発信しています。信号に関連付けられたスロットから、オブジェクトのプロパティ (この場合は QPushButton::text() であるテキスト) を編集します。

私が持っているヘッダーファイルのクラス「ダイアログ」で:

.cpp ファイルの「ダイアログ」クラスのコンストラクターには、次のものがあります。

そして最後に、私が持っている同じ .cpp ファイルのコンストラクターの外側:

このコードはコンパイルおよび実行されますが、ボタンをクリックしても何も起こりません。アプリケーションのデバッグ出力では、次のようになります。

繰り返しますが、クリックされたボタンのテキストを新しいものに変更しようとしています。これどうやってするの?

前もって感謝します。