Russian Qt Forum

Qt => Вопросы новичков => Тема начата: МП© от Март 05, 2012, 09:46



Название: Сигнал - слоты
Отправлено: МП© от Март 05, 2012, 09:46
Наверное, эта тема уже много раз обсуждалась, но ничего конкретного я не нашел. (ссылки приветствуются)

Не могу понять/разобраться как передавать слоты/сигналы между разными формами, например mainwindow и dialog.

Внутри MainWindow я научился управлять.

Как в диалоге указать приемником сигнала главную форму.
Что то вроде:
Код
C++ (Qt)
Dialog::Dialog(QWidget *parent) :
   QDialog(parent),
   ui(new Ui::Dialog)
{
   ui->setupUi(this);
   QObject::connect(ui->pushButton,SIGNAL(clicked()),MainWindow,SLOT(...));
}
 



Название: Re: Сигнал - слоты
Отправлено: Bepec от Март 05, 2012, 10:17
Чтобы соединить что-то с чем-то сигналами, нужно как минимум 2 указателя на соединяемые объекты.

В твоём случае у тебя нет указателя на MainWindow, если при создании диалога, ты родителя не задаёшь. (Dialog::Dialog(QWidget *parent) - конструктор, а в скобочках родитель ;) )

Если же ты создал диалог с родителем MainWindow, то подставляй заместо
Код:
//QObject:: - необязательно                                  MainWindow - если он родитель диалога 
               connect(ui->pushButton,SIGNAL(clicked()),parent(),SLOT(...));


Название: Re: Сигнал - слоты
Отправлено: mutineer от Март 05, 2012, 11:00
http://doc.crossplatform.ru/qt/4.7.x/signalsandslots.html