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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: как правильно передать указатель на массив в слот?  (Прочитано 5739 раз)
helga1917
Гость
« : Ноябрь 01, 2013, 14:15 »

Здравствуйте, вопрос в теме. компилятор пишет, что нет такого слота. Наверно не правильно передаю указатель.
Вот упрощенный пример:

window.h:
Код
C++ (Qt)
#include <QWidget>
#include <QDebug>
 
class Window : public QWidget
{
    Q_OBJECT
public:
    Window();
     void func ()
     {
       emit sig();
      }
public slots:
      void set (int *mas)
       {
        qDebug()<<*mas;
        }
signals:
       void sig();
};
 


main.cpp:
Код
C++ (Qt)
#include "window.h"
#include <QApplication>
 
int main (int argc, char *argv[])
{
      QApplication a (argc, argv);
      Window w, w2;
 
      int mas [3] = {1,2,3};
      int *u = mas;
 
      QObject::connect (&w, SIGNAL (sig()), &w2, SLOT (set(u)));
 
       w.func();
       w.show();
 
return a.exec();
};
 
Записан
mutineer
Гость
« Ответ #1 : Ноябрь 01, 2013, 14:19 »

Код
C++ (Qt)
QObject::connect (&w, SIGNAL (sig()), &w2, SLOT (set(u)));
 
Нет такого синтаксиса передачи параметра из сигнала в слот, правильный синтаксис есть в примерах и документации и в паре десятков новичковых тем на этом форуме
Записан
helga1917
Гость
« Ответ #2 : Ноябрь 01, 2013, 14:35 »

А обязательно нужно, чтоб сигнал передавал слоту указатель?
мне нужно чтоб по сигналу, сработал слот , который принимает указатель на массив,создаваемый в теле программы. Так нельзя?
Записан
mutineer
Гость
« Ответ #3 : Ноябрь 01, 2013, 14:36 »

А откуда этот параметр возьмется в момент вызова? Сделай указатель членом w2 и в слоте используй
Записан
helga1917
Гость
« Ответ #4 : Ноябрь 01, 2013, 14:39 »

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


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