找回密码
 立即注册
收起左侧

关于connect 函数

4
回复
8417
查看
[复制链接]
累计签到:69 天
连续签到:1 天
来源: 2016-7-26 17:24:41 显示全部楼层 |阅读模式
1Qter豆
我的头文件:class window : public QWidget
{   
Q_OBJECT
public:   
explicit window(QWidget *parent = 0);
private:   
QPushButton *button1,*button2,*button3;  
  QGridLayout *layout;   
QTextEdit *textedit;signals:
public slots:   
void OnClickbutton1();   
void OnClickbutton2();  
  void OnClickbutton3();}
;

我想手动定义一个connect ,这样写会报错 connect(button1,&QPushButton::clicked,this,OnClickbutton1()); 的确不知是什么问题

回复

使用道具 举报

累计签到:69 天
连续签到:1 天
2016-7-26 17:35:14 显示全部楼层
为什么信号连接信号这个编译就没有报错
signals:
    void OnClickbutton1();
    void OnClickbutton2();
    void OnClickbutton3();

connect(button1,SIGNAL(clicked()),this,SIGNAL(OnClickbutton1()));

这样写就可以!

回复

使用道具 举报

累计签到:955 天
连续签到:1 天
2016-7-27 08:06:48 显示全部楼层
connect(button1,&QPushButton::clicked,this,&window::OnClickbutton1());
回复

使用道具 举报

累计签到:69 天
连续签到:1 天
2016-7-27 21:30:34 显示全部楼层
刚才试了一下你的写法,还是不行,同样报错
moc_window.obj:-1: error: LNK2005: "public: void __cdecl window::OnClickbutton1(void)" (?OnClickbutton1@window@@QEAAXXZ) 已经在 window.obj 中定义
moc_window.obj:-1: error: LNK2005: "public: void __cdecl window::OnClickbutton2(void)" (?OnClickbutton2@window@@QEAAXXZ) 已经在 window.obj 中定义
moc_window.obj:-1: error: LNK2005: "public: void __cdecl window::OnClickbutton3(void)" (?OnClickbutton3@window@@QEAAXXZ) 已经在 window.obj 中定义
debug\Myproject1.exe:-1: error: LNK1169: 找到一个或多个多重定义的符号


就这四个错误!
回复

使用道具 举报

累计签到:2 天
连续签到:1 天
2016-7-29 18:37:59 显示全部楼层
connect(button1,&QPushButton::clicked,this,&window::OnClickbutton1);
不要再OnClickbutton1函数后加括号。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了