0

最近、qt クリエーターを使用してデモを開発していますが、qt クリエーターに関するいくつかの問題に遭遇しました。プロジェクトにクラスを追加して次のコードを記述すると、次のようになります。

#ifndef BUTTONRECIVER_H
#define BUTTONRECIVER_H

#include <QObject>
#include <iostream>

class ButtonReciver : public QObject
{
    Q_OBJECT
public:
    explicit ButtonReciver(QObject *parent = 0);

signals:

public slots:
    void button_click();
};

#endif // BUTTONRECIVER_H

しかし、このクラスをボタンクリック信号を受信するためのスロット(レシーバー)にすることはできません.qtクリエーターを使用してレシーバーを選択しましたが、リストに存在しません.助けてください.

4

1 に答える 1

3

ボタンがmyButtonと呼ばれている場合は、次のようにしてみてください。

ButtonReciver* receiver = new ButtonReciver(this);

connect(ui->myButton, SIGNAL(clicked()), receiver, SLOT(button_click()));

これを、フォームのコンストラクターのui->setupUi(this)の後のどこかに配置します。

通常、ボタンを右クリックして [スロットに移動...] をクリックすると、ハンドラーが作成されます。

于 2013-04-26T06:41:05.830 に答える