私はプロジェクトにQtを使っていましたが、私はQWidgetを作成しました。私のウィジェットクラスでは、私は3つの方法があり、クイズは、私の窓である -Qt C++別のクラスのウィンドウメソッドにアクセスする
void Quiz::appendConsole(QString string) {
ui->console->append(string);
}
void Quiz::setInput(QString string) {
ui->input->setText(string);
}
QString Quiz::getInput() {
return ui->input->text();
}
と示すように、彼らはパブリックとしてリストされているヘッダークラスで -
namespace Ui {
class Quiz;
}
class Quiz : public QWidget
{
Q_OBJECT
public:
Quiz(QWidget *parent = 0);
~Quiz();
void appendConsole(QString string);
void setInput(QString string);
QString getInput();
private slots:
void on_button_clicked();
void on_input_returnPressed();
private:
Ui::Quiz *ui;
};
しかし、私はこれらのいずれかにアクセスしようとすると、それはエラーで失敗し、別のクラスからの三つの方法 - エラー:オブジェクト引数
void startQuiz() {
Quiz::setInput("Hello");
}
せずに非静的メンバ関数を呼び出して、誰もがアクセスもに適切な方法を知っているんこれらのクラス、またはこれらのクラスの設定方法を教えてください。
待ち信号を使用します**メソッドを呼び出す際のエラーですが、**メソッド**を呼び出す方法を表示することが重要だったとは思わなかったのですか?どうして? –
寒い人もいます。 – Hamish
「Quiz :: setInput」は静的メソッドではないので、オブジェクトなしで呼び出すことはできません。 'Quiz'オブジェクトを他のクラスに渡すか、シグナルを使用します。 – thuga