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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: как вызвать функцию или сигнал послать из другого класса?  (Прочитано 5576 раз)
megido
Гость
« : Февраль 09, 2014, 19:00 »

Код:
на данный момент  у меня так

Class1::Class1(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::Class1)
{

    w=new Web();
    connect(w, SIGNAL(test_message()), this, SLOT(showMessage()) );

}

public slots:
    void showMessage();

***********************************

класс Web имеет сигнал test_message()

и там же в нем при его создании(на данный момент) пробую эмитить сигнал test_message()




собсно ничего не происходит. даже если я эмитирую сигнал в первом классе





Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #1 : Февраль 09, 2014, 19:16 »

Для вызова сигнала нужно использовать emit <сигнал>;
Код
C++ (Qt)
emit test_message();

А этого я у вас не увидел Улыбающийся
Записан

carrygun
Гость
« Ответ #2 : Февраль 10, 2014, 04:26 »

Дергать сигнал в конструкторе - плохая идея, сделайте для этого специальную функцию/слот.
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #3 : Февраль 10, 2014, 07:12 »

и там же в нем при его создании(на данный момент) пробую эмитить сигнал test_message()
собсно ничего не происходит. даже если я эмитирую сигнал в первом классе
А что по вашему мнению должно прозойти?
Если вы эмитите сигнал внутри конструктура, а коннект вызываете после него, то тот сигнал ничего вызвать и не должен, так как на момент эмита коннекта ещё нет.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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