• 4638阅读
  • 6回复

请问这样如何传值 [复制链接]

上一主题 下一主题
离线langziyang
 

只看楼主 倒序阅读 楼主  发表于: 2012-09-25
我现在的结构如下图:


在main.cpp里就是普通的项目内容
mainWidget.cpp是一个主窗口内容,里面有各种按钮
manWidget.h里include了"searchmusicdialog.h"
serchmusicdialog是一个在mainWidget里按钮的triggered()显示与隐藏的窗口
然后在seachmusicdialog里有一个signals,当做某一动作时,就发信号,然后在mainwidget里进行处理


背景交待完了,现在我想添加一个GetSinger的c++类,当mainwidget里进行某一动作的时候,想把这里的某个值传递到GetSinger里去(如果可以的话,同时希望能使用mainwidget里的某个组件),


我采用了在mainwidget里写一个signals的方法,emit后,在GetSinger里根本没有接收到,请讲一下正确的思路吧。
离线shiziyang

只看该作者 1楼 发表于: 2012-09-26
GetSinger这个类怎么写的?Q_OBJECT这个宏加了吗?
离线langziyang

只看该作者 2楼 发表于: 2012-09-27
加了Q_OBJECT的,其它就还什么都没写,只写了一个slots
离线shiziyang

只看该作者 3楼 发表于: 2012-09-27
那你又是怎么connect的?show一下代码吧
离线langziyang

只看该作者 4楼 发表于: 2012-09-27
就是在mainwidget.h里有一个
signals:
         void sendSongName(const QString &SongName);
在mainwidget.cpp里

        emit sendSongName(SongName);
然后在GetSonger.h里有一个slots:
       void getSongName(const QString &SongName);

在GetSonger.cpp里实例化mainwidget后connect

connent(mainwidget,SIGNAL(sendSongName(QString)),this,SLO(getSongName(QString)));
离线jdwx

只看该作者 5楼 发表于: 2012-09-27
回 4楼(langziyang) 的帖子
提醒一下楼上,以后写代码要仔细,要和工程里的一样,最好粘过来。
以前就有人提问,代码错误3个,告诉他写错了,他说实际没写错,帖子里写错了。

connent(mainwidget,SIGNAL(sendSongName(QString)),this,SLOT(getSongName(QString)));
红色的T没写,不知道是不是落下了。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线langziyang

只看该作者 6楼 发表于: 2012-09-27
不好意思,因为我发贴的电脑不是我写代码的电脑,另外就是那个键盘T有问题
快速回复
限100 字节
 
上一个 下一个