• 7081阅读
  • 5回复

关于信号和槽的参数问题 [复制链接]

上一主题 下一主题
离线溟阡
 
只看楼主 倒序阅读 楼主  发表于: 2009-03-26
QPushbutton*  button = new QPushbutton("button");
connect(button,SIGNAL(clicked()),this,SLOT(browse()));

browse()里是一个QFileDialog

我想把browse()改成有参数的,比如browse(QString str),然后用这个str作为QFileDialog的路径
可是不能够写成这样:connect(button,SIGNAL(clicked()),this,SLOT(browse(QString)));

所以现在不知道应该怎么做了……

麻烦高手们指点下~
离线xlwysyj
只看该作者 1楼 发表于: 2009-03-26
你可以写一个带参数的类 然后就slot里调用这个类就可以了
离线yleesun

只看该作者 2楼 发表于: 2009-03-26
信号和槽的参数要完全一致才可以。
离线jinnsky

只看该作者 3楼 发表于: 2009-03-26
需要关联的信号和槽的签名必须是等同的,不过一个槽的参数个数可以少于信号的参数个数,但缺少的参数必须是信号参数的最后一个或几个参数,否则编译器会报错~供楼主参考,呵呵~
追求卓越 JinnSky
离线benwang
只看该作者 4楼 发表于: 2009-03-27
QSignalMapper *styleMapper = new QSignalMapper( this );
connect( styleMapper, SIGNAL( mapped( const QString& ) ), this, SLOT( makeStyle( const QString& ) ) );
connect( a, SIGNAL( activated() ), styleMapper, SLOT(map()) );
styleMapper->setMapping( a, a->text() );
这是QTexamples里面themes里的themes.cpp的四句,或许对你有帮助……
You're the best……
离线foxyz

只看该作者 5楼 发表于: 2009-03-27
自己写一个slot好了
快速回复
限100 字节
 
上一个 下一个