crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> передача параметра вместе с сигналом
Гость_Анатолий_*
сообщение 12.10.2011, 13:36
Сообщение #1





Гости








    


как передавать параметр в сигнале?
например,
this->connect(requestButton, SIGNAL(clicked(data)), database, SLOT(getInfo()));

будет работать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DOGG
  опции профиля:
сообщение 12.10.2011, 14:05
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 44
Регистрация: 9.8.2011
Из: Калининград
Пользователь №: 2798

Спасибо сказали: 6 раз(а)




Репутация:   0  


Нет так не будет работать! Смотрите в сторону QSignalMapper.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 12.10.2011, 14:14
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Как раз так будет работать, а вот если у слота есть параметр, а у сигнала нет (или они разных несовместимых типов) - тогда не будет.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DOGG
  опции профиля:
сообщение 12.10.2011, 14:16
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 44
Регистрация: 9.8.2011
Из: Калининград
Пользователь №: 2798

Спасибо сказали: 6 раз(а)




Репутация:   0  


Если data - это тип, то да, но я думал - это переменная...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 12.10.2011, 14:52
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(DOGG @ 12.10.2011, 15:16) *
Если data - это тип, то да, но я думал - это переменная...

Ааа, я про переменную не подумал... :)
Тут нужны комментарии топикстартера.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Анатолий_*
сообщение 12.10.2011, 16:40
Сообщение #6





Гости








    


вообще идея такая: data- структура. забиваем её из всяких QLineEdit, QComboBox.
сигнал стандартный QPushButton, но нужно, чтобы он объекту, работающему с БД прислал данные.
получается в сигнал пихаем, в прототипа слота прописываем
void getInfo(Data data);

так? тогда ещё вопрос. а как слоту возвращать данные обратно в виджет?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ilyabvt
  опции профиля:
сообщение 12.10.2011, 16:57
Сообщение #7


Активный участник
***

Группа: Участник
Сообщений: 297
Регистрация: 23.6.2011
Пользователь №: 2765

Спасибо сказали: 45 раз(а)




Репутация:   3  


Цитата
сигнал стандартный QPushButton

Стандартный сигнал передает только одну переменную типа bool.
Цитата
а как слоту возвращать данные обратно в виджет

Ну например испускать свой сигнал и соединять его со слотом setText(QString).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DOGG
  опции профиля:
сообщение 12.10.2011, 17:03
Сообщение #8


Студент
*

Группа: Участник
Сообщений: 44
Регистрация: 9.8.2011
Из: Калининград
Пользователь №: 2798

Спасибо сказали: 6 раз(а)




Репутация:   0  


может быть стоит сделать так:
виджету добавить слот saveData(), соединить сигнал кнопки clicked() с этим слотом, в нем собирать данные и уже вызывать метод для сохранения.

Ну а обратно так же сигнал от объекта, работающего с БД, соедининть со своим слотом виджета, например saveCompleted

Сообщение отредактировал DOGG - 12.10.2011, 17:03
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


5 чел. читают эту тему (гостей: 5, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 1.12.2024, 10:13