0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 3
|
|
1 | |
Слоты и сигналы Qt22.02.2016, 16:03. Показов 1483. Ответов 5
Метки нет (Все метки)
Может мне кто-нибудь подскажет или я не замечаю чего-то очевидного. В общем перейду к описанию проблемы.
Есть форма на которой я кодом создаю QPushButton и этой кнопке хочу присвоить свой слот при сигнале clicked(). Прописываю это вот так QObject::connect(ReadMore, SIGNAL(clicked()), this, SLOT(ReadMoreInfo(info))); ReadMore - указатель на мою кнопку, ReadMoreInfo соответственно мой слот который расположен в этом же классе. И когда вызывается функция где я создаю кнопку и коннект к ней то Qt выдает ошибку QObject::connect: No such slot Rent::ReadMoreInfo(AutoInfo*info). Но если убрать параметр из слота, то всё работает. Не могу понять почему не хочет работать с параметрами, подскажите.
0
|
22.02.2016, 16:03 | |
Ответы с готовыми решениями:
5
Сигналы и слоты Сигналы и слоты Слоты и сигналы Сигналы и слоты |
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 3
|
|
22.02.2016, 16:35 [ТС] | 3 |
Спасибо, а то вчера пол ночи ломал голову и нигде найти не мог почему так)
Добавлено через 17 минут Байт, только вот как тогда быть если нужно передать аргумент?
0
|
Диссидент
27709 / 17325 / 3811
Регистрация: 24.12.2010
Сообщений: 38,979
|
|
22.02.2016, 17:41 | 4 |
Голову береги. Еще пригодится. Еще бы пол-ночи - и сломал бы таки
В любой книжке для начинающих, и конечно, в документации.
Зачем? Чего ты хочешь? Узнать, какая именно кнопка нажата? Для этого есть объект sender, доступный в любом слоте. Его можно взять, проанализировать (хотя бы взять его objectName) и соответственно поступить.
А что такое твой AutoInfo*info, я Увы! не знаю. Но он вполне может быть членом класса с соответствующим к нему доступом. Добавлено через 4 минуты Чуток теории. Слот - это конечно обычный метод. Но есть маленькая хитрость. Ему еще невидимо передается параметр sender. Другие фрэймворки (типа Бюльдера) его показывают явно. А Кутя считает, что это не к чему. Как параметр this во всех методах данного класса.
0
|
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 3
|
|
22.02.2016, 19:16 [ТС] | 5 |
Байт, какая кнопка будет нажата у меня определяется, мне нужно было передавать в слот объект с которого будет браться информация для новой формы, но увы аргумент в слот передает сигнал.
В общем решил это созданием нового класса и унаследованием от QPushButton. При создании кнопки теперь передаю свой объект конструктору, и в конструкторе создал коннект с сигналом clicked() и моим слотом, в котором срабатывает сигнал передающий мой аргумент(который я передавал в конструктор) слоту. Ну и в нужном мне классе делаю коннект с новым сигналом) Немного запутано, но суть уловить можно
0
|
Диссидент
27709 / 17325 / 3811
Регистрация: 24.12.2010
Сообщений: 38,979
|
|
22.02.2016, 19:47 | 6 |
0
|
22.02.2016, 19:47 | |
22.02.2016, 19:47 | |
Помогаю со студенческими работами здесь
6
Сигналы и слоты Сигналы и Слоты Сигналы и слоты Сигналы\слоты Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |