做了三个类,从其中一个类的交互界面获取输入的5个参数,想把这5个参数传递给另一个类中的变量,我是这样做的:
在图形界面的类里定义:
signals:
void senddbinform( QString ssdbkind ,QString ssdbname ,QString ssdbhost ,QString ssdbuser ,QString ssdbkey );、
该类中有私有变量:
QString sdbkind;
QString sdbname;
QString sdbhost;
QString sdbuser;
QString sdbkey;
该类中定义
connect( Dbok ,SIGNAL( clicked() ) ,this ,SLOT( sendout() ) );
与界面上Dbok按键的clicked()相连接的槽为:
void Dbconnect::sendout()
{
sdbkind = Dbkind -> currentText();
sdbname = Dbname -> currentText();
sdbhost = Dbhost -> currentText();
sdbuser = Dbuser -> currentText();
sdbkey = Dbkey -> text();
emit senddbinform( sdbkind , sdbname ,sdbhost ,sdbuser , sdbkey );
}
在另一个类中定义槽函数
void QDbcon::setdbinfor( QString Dbkind ,QString Dbname ,QString Dbhost ,QString Dbuser ,QString Dbkey)
{
dbkind = Dbkind;
dbname = Dbname;
dbhost = Dbhost;
dbuser = Dbuser;
dbkey = Dbkey;
}
dbkind,dbname........都是这个类的私有成员变量
第三个类中定义
void datahandle::creatconnect()
{
Dbconnect *dbconnectwindow = new Dbconnect( this );
connect( dbconnectwindow ,SIGNAL( senddbinformation( QString ,QString ,QString ,QString ,QString ) ) ,connection ,SLOT(setdbinfor( QString ,QString ,QString ,QString ,QString ) ) );
dbconnectwindow -> show();
}
但是运行函数creatconnect()时就报错,说什么Violence access.......,我把红色那一栏注释掉就没事了。有哪位高手知道是什么原因吗?感激不尽!