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

关于connect函数连接问题

6
回复
7593
查看
[复制链接]
累计签到:35 天
连续签到:1 天
来源: 2018-3-7 17:39:52 显示全部楼层 |阅读模式
1Qter豆
刚刚接触QT,有许多不会的东西。定义了类A与类B,类A是主界面MainWindow,类B是一个QToolBox类,在主界面中实例化并且引用了类B。
类B中定义一个按钮btn1,我在类A的函数中添加
   QObject::connect(btn1,&QToolButton::triggered,this,&MainWindow::toolbox);//就是点击类B界面中的按钮btn1
问题是,connect函数好像不认识“btn1”,我该怎么操作?程序可以运行,但是点击btn1不会弹出消息框
槽函数的定义为void MainWindow::toolbox(){ QMessageBox::information(this, tr("帮助"),MessageBox::Yes , QMessageBox::Yes);}//就是在主界面跳出一个消息框来
烦请指导一下.




最佳答案

查看完整内容

你可能需要连接的信号是 QAbstractButton::clicked 而不是 QToolButton::triggered 。后者是在ToolButton中包含的Action被触发时发射的,不是ToolButton本身被点击的时候发射。
回复

使用道具 举报

累计签到:436 天
连续签到:1 天
2018-3-7 17:39:53 显示全部楼层
你可能需要连接的信号是 QAbstractButton::clicked 而不是 QToolButton::triggered 。后者是在ToolButton中包含的Action被触发时发射的,不是ToolButton本身被点击的时候发射。
回复

使用道具 举报

累计签到:35 天
连续签到:1 天
2018-3-8 09:38:49 显示全部楼层
miroox 发表于 2018-3-7 21:49
你可能需要连接的信号是 QAbstractButton::clicked 而不是 QToolButton::triggered 。后者是在ToolButton中 ...

可能是这样。可是按照你这样改,connect函数依然识别“”不了btn1这个按钮,我该怎么做呢?该实例化一下吗?
回复

使用道具 举报

累计签到:436 天
连续签到:1 天
2018-3-8 10:41:13 显示全部楼层
“识别不了btn1这个按钮”具体是指什么?编译的时候通不过?还是运行时有报错?
回复

使用道具 举报

累计签到:35 天
连续签到:1 天
2018-3-8 15:12:23 显示全部楼层
miroox 发表于 2018-3-8 10:41
“识别不了btn1这个按钮”具体是指什么?编译的时候通不过?还是运行时有报错? ...

编译不通过,提醒“ “btn1”was not declared in this scope ”.
我自己觉得,编译这个函数前可能少东西,比如使用前应该实例化某个东西,但是不知道该实例化什么。
不知道我说的明不明白,谢谢!

点评

我猜原因是btn1是类B的私有成员,无法在类A中访问。有两种解决办法: ①如果btn1对类B没有许多依赖的话,可以把btn1从类B的成员中移除,转而在类A中创建btn1,通过addItem方法将btn1添加到类B的实例中。 ②如果btn1  详情 回复 发表于 2018-3-8 16:37
回复

使用道具 举报

累计签到:436 天
连续签到:1 天
2018-3-8 16:37:30 显示全部楼层
BourneCX 发表于 2018-3-8 15:12
编译不通过,提醒“ “btn1”was not declared in this scope ”.
我自己觉得,编译这个函数前可能少东西 ...

我猜原因是btn1是类B的私有成员,无法在类A中访问。有两种解决办法:
①如果btn1对类B没有许多依赖的话,可以把btn1从类B的成员中移除,转而在类A中创建btn1,通过addItem方法将btn1添加到类B的实例中。
②如果btn1不能从类B中移出的话,可以给类B添加访问btn1的方法,通过该方法间接访问btn1。
回复

使用道具 举报

累计签到:35 天
连续签到:1 天
2018-3-13 16:44:34 显示全部楼层
miroox 发表于 2018-3-8 16:37
我猜原因是btn1是类B的私有成员,无法在类A中访问。有两种解决办法:
①如果btn1对类B没有许多依赖的话, ...

谢谢你!
问题解决了,可能是我问题描述的不清楚。
自己基础太差了,附上我解决问题的网址,https://zhidao.baidu.com/question/320078001.html
回复

使用道具 举报

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

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