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

信号与槽问题

2
回复
10194
查看
[复制链接]
累计签到:67 天
连续签到:1 天
来源: 2013-10-28 12:25:06 显示全部楼层 |阅读模式
1Qter豆
void Widget::play(){  
            QFileDialog w;  
            QString fileName = w.getOpenFileName(this, tr("Open File"),                                                
                                                      "/",tr("Vedios (*.flv *.rmvb *.mp4)"));  
             mediaObject->setCurrentSource(Phonon::MediaSource(fileName));
             connect(&w,SIGNAL(accepted()), this,SLOT(test()));
}

void Widget::test(){   
          qDebug() << "succeed";
         }

这段代码是  选中文件打开后     为何没 有出现 succeed 信息

如果这里我没有写定义变量w   而是直接

QString fileName = QFileDialog::getOpenFileName ....

后面的槽第一个参数又该怎么写

connect( ____,SIGNAL(accepted()), this,SLOT(test()));

最佳答案

查看完整内容

这样写就行了: fileName = QFileDialog::getOpenFileName(this, tr("Open Image"), "/home/jana", tr("Image Files (*.png *.jpg *.bmp)")); 这里的this指的是调用这个函数的类,这里是Widget。 因为你用的是 QFileDialog w;这样定义的,这个和函数中的临时变量是一个意思,函数执行完就销毁了,所以关联是没有用的。 要想关联有用,可以使用 QFileDialog *w = new QFileDialog;这样的。 ...
回复

使用道具 举报

累计签到:1632 天
连续签到:2 天
2013-10-28 12:25:07 显示全部楼层
这样写就行了:
fileName = QFileDialog::getOpenFileName(this,
    tr("Open Image"), "/home/jana", tr("Image Files (*.png *.jpg *.bmp)"));

这里的this指的是调用这个函数的类,这里是Widget。


因为你用的是 QFileDialog w;这样定义的,这个和函数中的临时变量是一个意思,函数执行完就销毁了,所以关联是没有用的。

要想关联有用,可以使用 QFileDialog *w = new QFileDialog;这样的。
回复

使用道具 举报

累计签到:67 天
连续签到:1 天
2013-10-29 16:57:05 显示全部楼层
又解决了一困绕                   非常感谢
回复

使用道具 举报

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

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