Russian Qt Forum
Ноябрь 23, 2024, 17:11 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QAction и connect()  (Прочитано 3730 раз)
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« : Декабрь 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);
}
 
Подскажите в чем может быть баг Непонимающий
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Декабрь 03, 2016, 12:41 »

скорее всего leStatusAddress неинициализирован. ты дебаггером пользоваться не умеешь?

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

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Old
Джедай : наставник для всех
*******
Online Online

Сообщений: 4350



Просмотр профиля
« Ответ #2 : Декабрь 03, 2016, 12:48 »

з.ы. «адрес» с одной буквой «с» пишется.
В русском да. Улыбающийся
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« Ответ #3 : Декабрь 03, 2016, 22:30 »

Спасибо
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.121 секунд. Запросов: 23.