• 5467阅读
  • 14回复

这是怎么回事? [复制链接]

上一主题 下一主题
离线vally1989
 
只看楼主 倒序阅读 楼主  发表于: 2011-09-19
connect(mTree,SIGNAL(LBtnDbClk()),this,SLOT(close()));我把一个信号和主窗口的close槽连起来,可以实现当双击的时候主窗口关闭,但是如果我把这个信号和我自己写的一个槽连起来:
private slots:
     print()
{
this->close();
}                                                  connect(mTree,SIGNAL(LBtnDbClk()),this,SLOT(print()));  却没有反应,各位知道是怎么回事吗?
离线vally1989
只看该作者 1楼 发表于: 2011-09-19
print()前面应该有个void,忘写了
离线wxj120bw

只看该作者 2楼 发表于: 2011-09-20
回 1楼(vally1989) 的帖子
打印下connect函数返回结果看看
离线xinqingfly

只看该作者 3楼 发表于: 2011-09-20
你确定发送了LBtnDbClk()信号?
菜鸟也是鸟
离线vally1989
只看该作者 4楼 发表于: 2011-09-20
回 3楼(xinqingfly) 的帖子
恩,非常确定
离线jdwx

只看该作者 5楼 发表于: 2011-09-20
回 4楼(vally1989) 的帖子
private slots:
     print()
{
this->close();
}      
确实是这么写的?
没写void,
还有:函数体要写在cpp文件里。
写好后,把编译过程中生成的文件手工全部删除,从头编译一次,再试试。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线vally1989
只看该作者 6楼 发表于: 2011-09-20
回 5楼(jdwx) 的帖子
我又按你说的重写了一下,还是没用,很费解啊
离线wuleeemail

只看该作者 7楼 发表于: 2011-09-20
楼主,你为何要自定义一个信号?这里不能用Qt给的clicked()吗? 我用这个clicked()就没有问题。
离线jdwx

只看该作者 8楼 发表于: 2011-09-20
回 6楼(vally1989) 的帖子
我也挺奇怪,不行就发代码上来,大家帮你看看.
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线xiangxiao
只看该作者 9楼 发表于: 2011-09-20
对,代码提上来看看
离线vally1989
只看该作者 10楼 发表于: 2011-09-20
这个是在QTreeView中的,想实现双击某个项目关闭窗口的目的,重新定义了鼠标双击事件,经过一些操作后才发出双击信号,所以没有系统给的双击信号。关键问题是,为什么系统的槽函数可以用,而自定义的功能相同的槽函数为什么没反应呢?
离线vally1989
只看该作者 11楼 发表于: 2011-09-20
主要就是响应了鼠标的双击事件,经过处理之后发出信号,连接到print()槽,其它代码都是实现专业目的的,跟Qt并没关系
离线jdwx

只看该作者 12楼 发表于: 2011-09-20
回 11楼(vally1989) 的帖子
print所在的类是QObject的子类吗?有没有Q_OBJECT宏?
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线dxfans

只看该作者 13楼 发表于: 2011-09-29
无码无真相
在线XChinux

只看该作者 14楼 发表于: 2011-09-29
Q_OBJECT宏。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个