我的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 ')'

// 这怎么办?在线等!!!!
}
展开
 我来答
创作者XXGDQ4kMbU
推荐于2018-05-12 · TA获得超过1281个赞
知道小有建树答主
回答量:371
采纳率:66%
帮助的人:429万
展开全部
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.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式