Russian Qt Forum

Qt => Общие вопросы => Тема начата: demaker от Декабрь 03, 2016, 11:30



Название: QAction и connect()
Отправлено: demaker от Декабрь 03, 2016, 11:30
Делаю сигнал-солот соединение и вылетает на нем
Не могу понять, вроде все правильно сделал.
Код
C++ (Qt)
void MainWindow::createMenu()
{
   QMenu *menuFile = ui->menuBar->addMenu("Файл");
   QAction *actExit = menuFile->addAction("Выход");
   connect(actExit,SIGNAL(triggered()),this,SLOT(close()));
 
   QMenu *menuSettings = ui->menuBar->addMenu("Настройки");
   a = new ActionSettings(&connection,"Соединение");
   connect(a,SIGNAL(changeDataConnection(QString)),leStatusAddress,SLOT(setText(QString)));//ВЫЛЕТАЕТ
   menuSettings->addAction((QAction*)a);
}
 
ActionSettings::ActionSettings(connection_data *connection, const QString &str, QObject *parent):
   QAction(str,parent),
   c_d(connection),
   name(str)
{
   connect(this,SIGNAL(triggered()),this,SLOT(showDialogSettings()));
}
 
ActionSettings::~ActionSettings()
{
}
 
void ActionSettings::showDialogSettings()
{
   QString str_addr;
   int port;
   DialogSettings *dialog = new DialogSettings(name,c_d->addr,c_d->port);
   if(dialog->exec() == QDialog::Accepted){
       str_addr = dialog->getAddress().toString();
       port = dialog->getPortNumber();
   }
   else{
       str_addr = dialog->setDefaultAddress().toString();
       port = dialog->setDefaultPortNumber();
   }
   c_d->addr.setAddress(str_addr);
   c_d->port = port;
   str  = "адресс: " + c_d->addr.toString() + "  порт: " + QString("%1").arg(c_d->port);
   //qDebug()<<"адресс: "<<c_d->addr.toString()<<"  порт: "<< QString("%1").arg(c_d->port);
   delete dialog;
 
   changeDataConnection(str);
}
 
Подскажите в чем может быть баг ???


Название: Re: QAction и connect()
Отправлено: kambala от Декабрь 03, 2016, 12:41
скорее всего leStatusAddress неинициализирован. ты дебаггером пользоваться не умеешь?

з.ы. «адрес» с одной буквой «с» пишется.


Название: Re: QAction и connect()
Отправлено: Old от Декабрь 03, 2016, 12:48
з.ы. «адрес» с одной буквой «с» пишется.
В русском да. :)


Название: Re: QAction и connect()
Отправлено: demaker от Декабрь 03, 2016, 22:30
Спасибо