Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: vexar от Октябрь 04, 2010, 09:07



Название: Сигнал из класса в класс
Отправлено: vexar от Октябрь 04, 2010, 09:07
Ни как не могу до петрить как послать сигнал из класса в класс.
Делаю так:

Код:
MainWindow.cpp
ClassOne::ClassOne(QWidget *parent) : QDialog(parent)
{
    OkButton = new QPushButton(trUtf8("Добавить"));
    connect(OkButton, SIGNAL(clicked()), ClassTwo, SLOT(MySlot()));
}


ClassTwo::MySlot()
{
     .....
}

Код:
MainWindow.h

class ClassTwo : public QWidget
{
    Q_OBJECT

public:
    ClassTwo(QWidget *parent = 0);
public slots:
    void MySlot();
}


Название: Re: Сигнал из класса в класс
Отправлено: SABROG от Октябрь 04, 2010, 09:20
Для этого один QObject должен иметь указатель на второй QObject. Стало быть этот указатель нужно передавать через отдельный метод типа setPointerForClassTwo() или через конструктор.


Название: Re: Сигнал из класса в класс
Отправлено: merke от Октябрь 04, 2010, 10:00
ClassTwo *two = new ClassTwo;

connect(OkButton, SIGNAL(clicked()), Two, SLOT(MySlot()));

вот и все!


Название: Re: Сигнал из класса в класс
Отправлено: voronElf от Октябрь 05, 2010, 07:34
Цитировать
как послать сигнал из класса в класс
сигналы из объекта в объект посылаются, а не из класса в класс (разницу ведь чувствуете). Александр это кодом показал.


Название: Re: Сигнал из класса в класс
Отправлено: AlekseyK от Октябрь 05, 2010, 12:11
Что значит из класса в класс? Это же не абстрактные понятия, существующие сами по себе. Должны быть экземпляры класса, к ним и привязывается. Если один класс сделать контейнером для экземпляра другого, то привязать легко: у них какая-то логика должна быть связанная, а иначе смысла нет.