Qt函数参数调用问题

小吥点 2014-09-17 02:59:50
现在问题是,我有2个类,A 和B。
A中d->rewidget->DownloadReport(d->lReportData[i].report_document_id);(rewidget是B *rewidget)
B类中void DownloadReport( QString strXMLID)函数
现在我B 类中有一个button,问题就是我现在要当我按钮这个按钮button后开始调用这个DownloadReport( QString strXMLID)函数
开始的时候我把DownloadReport( QString strXMLID)这个函数当成一个槽函数
connect(d->toolButton,SIGNAL(clicked()),this,SLOT(DownloadReport(QString)));
结果好像不行,不管你按不按下按钮button他都会进入DownloadReport这个函数,并不是点击按钮后进入的,有谁知道该怎么弄才能达到那种效果
...全文
231 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
小吥点 2014-09-18
  • 打赏
  • 举报
回复
引用 1 楼 WeiXiao_365 的回复:
从QPushButton派生一个button再重写void mousePressEvent(QMouseEvent *ev);事件 定义信号clicked(();. 重写事件实现,示例代码: void GClickLabel::mousePressEvent(QMouseEvent *ev) { if(!rect().contains(ev->pos())) return; if(ev->button() == Qt::LeftButton) emit clicked(); } 再链接你写的那个槽就可以了
不能重新写一个槽函数,不能单独的在新写的槽函数中调用这个接口函数,问题解决了 只能再写个接口函数,给他一个id号 ,然后把这个id赋值给一个自己定义的变量,然后再将这个变量传参给DownloadReport(QString strXMLID)这个函数
  • 打赏
  • 举报
回复
你的按钮是a类的还是b类的
WeiXiao_365 2014-09-17
  • 打赏
  • 举报
回复
从QPushButton派生一个button再重写void mousePressEvent(QMouseEvent *ev);事件 定义信号clicked(();. 重写事件实现,示例代码: void GClickLabel::mousePressEvent(QMouseEvent *ev) { if(!rect().contains(ev->pos())) return; if(ev->button() == Qt::LeftButton) emit clicked(); } 再链接你写的那个槽就可以了

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧