我的Qt出现问题了,请高手指教
我在学习Qt,使用designer制作了一个对话框,名字是inputAgeDialog,里面是两个按钮,和一个spinBox,分别取名为okButton和cancelBu...
我在学习Qt,使用designer制作了一个对话框,名字是inputAgeDialog,里面是两个按钮,和一个spinBox,分别取名为okButton和cancelButton和spinBox,我想要在按下cancel的时候关闭窗口,这点我做到了。但是我想当我按下OK的时候调用我自己在InputAgeDialog类中的private slot。我尝试的一下,但是出现了问题。
源代码:
// InputAgeDialog.h
#ifndef INPUTAGEDIALOG_H
#define INPUTAGEDIALOG_H
#include "ui_InputAgeDialog.h"
#include "QDialog"
class InputAgeDialog:public QDialog, Ui::inputYourAgeDialog{
Q_OBJECT
public:
InputAgeDialog(QWidget *parent = NULL);
int getAge();
private slots:
void accept(int age);
void write(int age);
void done();
private:
int age;
};
#endif // INPUTAGEDIALOG_H
// InputAgeDialog.cpp
#include "InputAgeDialog.h"
#include <QtGui>
#include <QWidget>
#include "ui_InputAgeDialog.h"
InputAgeDialog::InputAgeDialog(QWidget *parent):QDialog(parent),Ui::inputYourAgeDialog(){
//****************************下面的那行有错误************************************
/*我还没有完成所有的函数,正在写这个构造函数。*/
QObject::connect(okButton, SIGNAL(clicked()), this, SLOT(accept(spinBox -> value())));
//使用QTcreator提示expected token ';' got ')'
// 这怎么办?在线等!!!!
} 展开
源代码:
// InputAgeDialog.h
#ifndef INPUTAGEDIALOG_H
#define INPUTAGEDIALOG_H
#include "ui_InputAgeDialog.h"
#include "QDialog"
class InputAgeDialog:public QDialog, Ui::inputYourAgeDialog{
Q_OBJECT
public:
InputAgeDialog(QWidget *parent = NULL);
int getAge();
private slots:
void accept(int age);
void write(int age);
void done();
private:
int age;
};
#endif // INPUTAGEDIALOG_H
// InputAgeDialog.cpp
#include "InputAgeDialog.h"
#include <QtGui>
#include <QWidget>
#include "ui_InputAgeDialog.h"
InputAgeDialog::InputAgeDialog(QWidget *parent):QDialog(parent),Ui::inputYourAgeDialog(){
//****************************下面的那行有错误************************************
/*我还没有完成所有的函数,正在写这个构造函数。*/
QObject::connect(okButton, SIGNAL(clicked()), this, SLOT(accept(spinBox -> value())));
//使用QTcreator提示expected token ';' got ')'
// 这怎么办?在线等!!!!
} 展开
1个回答
展开全部
QObject::connect(okButton, SIGNAL(clicked()), this, SLOT(accept(spinBox -> value())));
这句有错. SLOT(accept(spinBox -> value()) 是不能这么写的.
参数必须是 SIGNAL(clicked()) 传过来的. 如果你想要传递参数.你可以再定义一个函数
onOkButtonClicked(){
accept(spinBox -> value());
}
然后
QObject::connect(okButton, SIGNAL(clicked()), this, SLOT(onOkButtonClicked()));
这样每次按下按钮就会调用 onOkButtonClicked().在 onOkButtonClicked 里面调用 accept.
这句有错. SLOT(accept(spinBox -> value()) 是不能这么写的.
参数必须是 SIGNAL(clicked()) 传过来的. 如果你想要传递参数.你可以再定义一个函数
onOkButtonClicked(){
accept(spinBox -> value());
}
然后
QObject::connect(okButton, SIGNAL(clicked()), this, SLOT(onOkButtonClicked()));
这样每次按下按钮就会调用 onOkButtonClicked().在 onOkButtonClicked 里面调用 accept.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询