Название: Ошибка в программе. Сигналы и слоты. Отправлено: bars268 от Декабрь 13, 2012, 19:28 Код: int main(int argc, char *argv[]) Ошибка где то в присоединении QObject::connect Но я не могу понять что именно там не так функция AddColor(Qstring) Текст ошибки \main.cpp:44: ошибка: no matching function for call to 'QObject::connect(QPushButton**, const char*, QTextEdit**, const char*)' Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: mutineer от Декабрь 13, 2012, 19:32 Амперсанды лишние. в connect надо передвать указатели, а не указатели на указатели
Код: SLOT(AddColor(edit->toPlainText())) Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: GreatSnake от Декабрь 13, 2012, 19:33 Текст ошибки Тебе компилятор явно сказал, что он не хочет принимать "указатель на указатель".\main.cpp:44: ошибка: no matching function for call to 'QObject::connect(QPushButton**, const char*, QTextEdit**, const char*)' От каких великих знаний перед but и text появилось & ? Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: bars268 от Декабрь 13, 2012, 19:35 Амперсанды лишние. в connect надо передвать указатели, а не указатели на указатели Спасибо огромное! Я не уследил по неопытности(Код: SLOT(AddColor(edit->toPlainText())) А как правильно вызывать функцию AddColor(edit->toPlainText())? Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: mutineer от Декабрь 13, 2012, 19:37 1) У QTextEdit нет метода AddColor
2) Что в макросе SLOT делает edit->toPlainText() ? Что оно должно символизировать и где ты увидел возможность так писать? Доку по сигналам/слотам читал? Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: bars268 от Декабрь 13, 2012, 19:39 1) У QTextEdit нет метода AddColor Функцию AddColor я написал сам.2) Что в макросе SLOT делает edit->toPlainText() ? Что оно должно символизировать и где ты увидел возможность так писать? Доку по сигналам/слотам читал? Читал, но, видимо, не понял до конца, вот и прошу тут помощиНазвание: Re: Ошибка в программе. Сигналы и слоты. Отправлено: mutineer от Декабрь 13, 2012, 19:41 ты не мог ее написать классу QTextEdit, потому что это Qt-класс (ну разве что ты дописал ее в исходники Qt и пересобрал, но это имеет мало смысла)
В макросы SIGNAL() и SLOT() пишется имя метода и типы его параметров, а не значения Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: Bepec от Декабрь 13, 2012, 19:42 Шлее, страница помоему 80, глава "Сигналы и слоты". Почитай, хуже не станет.
Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: GreatSnake от Декабрь 13, 2012, 19:43 Читал, но, видимо, не понял до конца, вот и прошу тут помощи Это (http://doc.crossplatform.ru/qt/4.7.x/signalsandslots.html) читал?Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: bars268 от Декабрь 13, 2012, 19:44 Ничего я не дописывал, я просто написал функцию, которая возвращает QString
А потом методом Settext пытался засунуть то что получилось из функции в QTextEdit Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: bars268 от Декабрь 13, 2012, 19:44 Шлее, страница помоему 80, глава "Сигналы и слоты". Почитай, хуже не станет. у меня щас рядом лежит его книга, по Qt 4.8 но что то до меня никак не доходит(Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: mutineer от Декабрь 13, 2012, 19:45 Ничего я не дописывал, я просто написал функцию, которая возвращает QString А потом методом Settext пытался засунуть то что получилось из функции в QTextEdit Код полностью покажи, а особенно то место, в котором эта функция должна была стать слотом объекта text Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: bars268 от Декабрь 13, 2012, 19:46 Код: #include <QtGui/QApplication> Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: mutineer от Декабрь 13, 2012, 19:47 AddColor никоим образом не является слотом объекта text, и вообще ничьим слотом не является. Коннектиться к ней бесполезно. С++ учил?
Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: bars268 от Декабрь 13, 2012, 19:48 То есть для слота и сигнала мне нужно создавать свой класс, унаследованный от QObject?
Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: mutineer от Декабрь 13, 2012, 19:50 То есть для слота и сигнала мне нужно создавать свой класс, унаследованный от QObject? В доке по сигналам и слотам, а так же в любой книге по Qt написано, что сигналы и слоты могут быть только у наследника QObject. Читай внимательнее Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: bars268 от Декабрь 13, 2012, 19:52 То есть для слота и сигнала мне нужно создавать свой класс, унаследованный от QObject? В доке по сигналам и слотам, а так же в любой книге по Qt написано, что сигналы и слоты могут быть только у наследника QObject. Читай внимательнее Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: mutineer от Декабрь 13, 2012, 19:54 Нет, примеров полно, как в книге, так и в документации. Учись, а то будешь потом за каждым элементарным чихом на форум лазить
Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: bars268 от Декабрь 13, 2012, 19:55 Нет, примеров полно, как в книге, так и в документации. Учись, а то будешь потом за каждым элементарным чихом на форум лазить Сейчас буду пробовать, если что придется опять сюда идти, спасибо за помощь!Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: Bepec от Декабрь 13, 2012, 20:25 *свистит*
Платные консультации всем приятны. ::) *скрывается в лесу* Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: bars268 от Декабрь 13, 2012, 21:54 Все равно не выходит, не могу я понять что там куда в этих классах прописывать...
Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: mutineer от Декабрь 13, 2012, 22:03 С С++ и ООП вообще знаком?
Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: bars268 от Декабрь 13, 2012, 22:15 С С++ и ООП вообще знаком? конечно знаком. Другое дело если я что то не понимаю. Хотя вроде все нормальноНазвание: Re: Ошибка в программе. Сигналы и слоты. Отправлено: mutineer от Декабрь 13, 2012, 22:17 И что у тебя не получается?
Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: bars268 от Декабрь 13, 2012, 22:20 В общем говоря, я не знаю как заставить функцию работать по нажатию буттона, а примеров нигде не нахожу
Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: mutineer от Декабрь 13, 2012, 22:22 Примеров реакции на нажатие кнопки не находишь? В чем затруднение у тебя?
Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: bars268 от Декабрь 13, 2012, 22:26 я не знаю с какой именно стороны подойти к решению, и за что браться, чточитать
Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: mutineer от Декабрь 13, 2012, 22:27 С книги по Qt и документации по сигналам/слотам
Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: kambala от Декабрь 13, 2012, 22:29 пример есть в описании класса QPushButton.
добавлено: а нет, нету. есть лишь описание сигналов в QAbstractButton, ну а как соедиять сигналы и слоты — написано в соответствующем разделе документации. Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: bars268 от Декабрь 13, 2012, 22:34 В документации нет примера с конкретной функцией, которая лежит в мейне
Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: mutineer от Декабрь 13, 2012, 22:38 Вот тебе простейший пример с реакцией на нажатие кнопки
http://code-live.ru/post/getting-started-qt/ Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: bars268 от Декабрь 13, 2012, 23:10 Все, я сдаюсь. Так и не получилось
Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: mutineer от Декабрь 13, 2012, 23:12 По ссылке пример проще некуда. Что могло не получиться?
Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: bars268 от Декабрь 13, 2012, 23:15 Там не то что у меня...\И даже не похоже
Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: mutineer от Декабрь 13, 2012, 23:17 Там есть кнопка, по нажатию этой кнопки выполняются некие действия. Это практически то же самое, что и у тебя
Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: bars268 от Декабрь 13, 2012, 23:21 какое то действие... все равно не понимаю. тупик(
Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: mutineer от Декабрь 13, 2012, 23:23 мда... ну не понимай дальше, раз не можешь нормально описать проблему
Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: bars268 от Декабрь 13, 2012, 23:32 Проблема в том что я не понимаю что и как писать в "*.h"
Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: mutineer от Декабрь 13, 2012, 23:41 Видимо проблема в том, что ты не умеешь работать с классами в С++. Я прав?
Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: bars268 от Декабрь 13, 2012, 23:53 видимо да
Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: mutineer от Декабрь 14, 2012, 00:02 Ну значит начинать тебе надо не с Qt, а с ООП и С++
Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: GreatSnake от Декабрь 14, 2012, 07:37 Ну значит начинать тебе надо не с Qt, а с ООП и С++ Я бы не был столь категоричным.Всё-таки с сигналами/слотами есть некоторые нюансы с ООП и С++ несвязанные. Например, описание класса с Q_OBJECT по дефолту должно быть в *.h. Что совсем не очевидно и меня очень часто неимоверно раздражает. Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: Bepec от Декабрь 14, 2012, 08:10 Я бы сказал проще - человеку нехватает знания разделов и технологии построения ООП в С++ :)
Я б посоветовал поделать примеры по книге любой. Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: carrygun от Декабрь 14, 2012, 09:01 Сейчас открыл справку по сигналам/слотам, там все расписано довольно адекватно с примерами (в том числе и
Цитировать что и как писать в "*.h" ) и даже с картинками.Что конкретно вызывает затруднение? Мне кажется, что система даже интуитивно понятна. Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: bars268 от Декабрь 14, 2012, 10:37 Вроде написал, но не пойму что теперь не так
counter.h Код: #ifndef WIDGET_H Код: #include <QtGui/QApplication> Но при нажатии ничего не происходит Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: GreatSnake от Декабрь 14, 2012, 10:54 Повторите вслух и громко что делает этот вызов
Код причём несколько раз. Update: если до сих пор не дошло, объясняю: этим вызовом мы связываем кнопку but с редактором counter.fintext, чтобы по нажатию кнопки вызвался метод редактора counter.fintext.SetString(). Далее выясняем, что у QTextEdit такого метода нет, а он есть у Counter. Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: carrygun от Декабрь 14, 2012, 10:55 Потому что у "fintext" который QTextEdit нет слота SetString() (о чем должно было сказать приложение в стандартный вывод, который ты видимо почемуто не читаешь). Оставь просто "&counter" и, пожалуйста, разбирайся внимательнее.
Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: bars268 от Декабрь 14, 2012, 10:58 Повторите вслух и громко что делает этот вызов Связывает кнопку but по сигналу clicked с формой?Код причём несколько раз. Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: bars268 от Декабрь 14, 2012, 11:00 Потому что у "fintext" который QTextEdit нет слота SetString() (о чем должно было сказать приложение в стандартный вывод, который ты видимо почемуто не читаешь). Оставь просто "&counter" и, пожалуйста, разбирайся внимательнее. Спасибо огромное! Да, я действительно невнимателен( но, думаю, это по неопытности и в скором времени пройдетНазвание: Re: Ошибка в программе. Сигналы и слоты. Отправлено: GreatSnake от Декабрь 14, 2012, 11:02 Да, я действительно невнимателен( но, думаю, это по неопытности и в скором времени пройдет Очень хотелось бы надеяться, особенно на 4-ой странице...Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: bars268 от Декабрь 14, 2012, 11:06 Всем спасибо за помощь, я наконец разобрался с сигналами и слотами)
Название: Re: Ошибка в программе. Сигналы и слоты. Отправлено: Bepec от Декабрь 17, 2012, 09:51 Вери гуд.
|