Название: connect сигналы и слоты=( Отправлено: Ker от Август 04, 2009, 20:15 Новичок и само собой не понимаю...
В принципе нужно что бы при нажатии кнопки QPushButton выводилась строка в поле QTextEdit. Код: QPushButton *pushButton = new QPushButton("Button"); Подскажите что не так...? Название: Re: connect сигналы и слоты=( Отправлено: spectre71 от Август 04, 2009, 20:24 Новичок и само собой не понимаю... В принципе нужно что бы при нажатии кнопки QPushButton выводилась строка в поле QTextEdit. Код: QPushButton *pushButton = new QPushButton("Button"); Подскажите что не так...? Все! Почитай для начала книжку по QT. http://torrents.ru/forum/viewtopic.php?t=687311 (http://torrents.ru/forum/viewtopic.php?t=687311) http://torrents.ru/forum/viewtopic.php?t=597355 (http://torrents.ru/forum/viewtopic.php?t=597355) Название: Re: connect сигналы и слоты=( Отправлено: Alex Custov от Август 04, 2009, 20:33 Откройте документацию.
Цитировать bool QObject::connect ( const QObject * sender, const char * signal, const QObject * receiver, const char * method, Qt::ConnectionType type = Qt::AutoConnection ) [static] ... Note that the signal and slots parameters must not contain any variable names, only the type. E.g. the following would not work and return false: Код: // WRONG Название: Re: connect сигналы и слоты=( Отправлено: denka от Август 04, 2009, 21:28 То что ты хочешь сделать, делаеться с помощью QSignalMapper
Название: Re: connect сигналы и слоты=( Отправлено: MoPDoBoPoT от Август 04, 2009, 21:49 То что ты хочешь сделать, делаеться с помощью QSignalMapper Ты специально хочешь запутать человека? (:Соглашусь с советом Spectre, необходимо прочитать хотя бы одну книгу по Qt. Название: Re: connect сигналы и слоты=( Отправлено: lit-uriy от Август 05, 2009, 05:35 Сколько бы не было написано в Асистенте, но все ошибку совершают с сигналами и слотами (и я тоже на эту граблю наступал). По этому поводу даже в вики написал: Сигналы и слоты (Qt) (http://www.wiki.crossplatform.ru/index.php/Сигналы_и_слоты_(Qt))
И ещё не помешает старое учебное пособие (http://doc.crossplatform.ru/qt/4.4.3/tutorials-tutorial.html) прочитать (то что в 4.5. убрали) Название: Re: connect сигналы и слоты=( Отправлено: Vexator от Август 05, 2009, 06:58 тебе хотят сказать, что передавать переменные таким путем нельзя
такое сработало бы, если бы твоя строка str передавалась бы из сигнала clicked() Код: connect(pushButton, SIGNAL(clicked(QString)), textEdit, SLOT(setPlainText(QString))); вообщем читай про слоты подробнее Название: Re: connect сигналы и слоты=( Отправлено: sergeyvl12 от Август 20, 2009, 18:21 Все! Тебе не кажется что это - универсальный ответ на любой вопрос начинающего?Почитай для начала книжку по QT. http://torrents.ru/forum/viewtopic.php?t=687311 (http://torrents.ru/forum/viewtopic.php?t=687311) http://torrents.ru/forum/viewtopic.php?t=597355 (http://torrents.ru/forum/viewtopic.php?t=597355) Я думаю автор уже кое-что читал. Если кратко, то сигнал и слот должны совпадать по параметрам. В твоем случае нужно очевидно сделать слот без параметров (на форме), связать его с кнопкой в connect() и из этого слота уже вызывать setPlainText(QString) Название: Re: connect сигналы и слоты=( Отправлено: Rcus от Август 20, 2009, 18:39 Гыгы гыгы :) Универсальный ответ грите? Когда у меня были проблемы начинающего с Qt/Embedded что-то никто мне не кинул линков на нужные книги(а как хотелось). А на данный вопрос именно ссылка на документацию является более корректным ответом, поскольку в ней дается не только прямой ответ на вопрос, но и объясняется общий принцип действия и ньюансы которые не укладываются в формат ответа на форуме.
Название: Re: connect сигналы и слоты=( Отправлено: sergeyvl12 от Август 20, 2009, 19:17 Видел я эти книги! Все они начинаются с примеров и нужно немало прочитать вперед и перепробовать немало примеров чтобы что-то мало-мальски начать понимать (тем более что moc немного исковеркал или если хотите "дополнил" C++). А человек очевидно попытался немного переделать один из этих начальных примеров. Не получилось с ходу. Бывает. А вы его опять посылаете изучать те же книги и те же примеры.
Давайте тогда на форуме "Для начинающих" повесим жирными буквами надпись: Форум закрыт, читайте книги! И дело с концом. Не спорю есть люди которые только столкнутся с проблемой, сразу же бегут на форум. Сам таких не люблю. Но интуиция подсказывает мне что в данном случае это не так. Извините за оффтоп! Давайте закроем эту дискуссию, в конце концов я немного погорячился и как отвечать на форуме - личное дело каждого. Название: Re: connect сигналы и слоты=( Отправлено: Igors от Август 20, 2009, 19:41 Здравствуйте, Сергей
... Не знаю что Вы имеете ввиду. Лично для меня (новичка в Qt) все эти moc и qmake пока больше геморрой чем выгода. Да, это сэкономит мне сотню строк, но для меня это не великая проблема, руками напишу, не переломлюсь :) Но вот торопиться с выводами по-моему не стоит. Поюзаем, посмотрим, а дальше - жизнь покажет :)(тем более что moc немного исковеркал или если хотите "дополнил" C++). ... Название: Re: connect сигналы и слоты=( Отправлено: Новгородец от Август 20, 2009, 19:58 Один из вариантов решения.
А что не так, выше уже написали. Но книги все таки надо читать. Код
Код
Код
Название: Re: connect сигналы и слоты=( Отправлено: C010ne1 от Август 10, 2019, 11:25 10 лет прошло и у новичков опять вопросы про connect...
Использую Qt Creator 4.8.2. Основан на Qt 5.12.2 Как работает connect я разобрался (вроде бы...) и у меня вопрос скорей про Creator. Беру пример: QPushButton *close = new QPushButton("Выход"); connect(close,SIGNAL(clicked()),this,SLOT(close())); Пример рабочий, но когда я ручками пишу эти строчки Creator мне не подсказывает список возможных сигналов и слотов :( И такая проблема во всех моих проектах. Достало уже лазить каждый раз в помощь и смотреть перечень сигналов и слотов в нужном мне каком-то классе. Или лазить копировать из описания своего какого-то класса. В настройках Creatora ничего не нашел. В интернете у всех на ютубе, когда пишут SIGNAL или SLOT всплывает список сигналов и слотов соответственно, а у меня нет... Руками писать - частые ошибки (разбирай потом). Я в печали... Help me please. Название: Re: connect сигналы и слоты=( Отправлено: vbv от Август 10, 2019, 12:26 Только что обратил внимание Creator 4.9.2.
То-же не подсказывает. Никогда не обращал внимание. :) Может потому не подсказывает, что пишу на Qt4.... Была замечена проблема подсказок у Creator'a при использовании namespace, времени разбираться не было и не стал заморачиваться а потом забыл. Надо попробовать чистый project сгенерить. Добавлено: По пробовал: 1. Проблема не в namespaces. 2. Проблема не в версии QT. Надо будет разобраться. Название: Re: connect сигналы и слоты=( Отправлено: vbv от Август 10, 2019, 12:56 Отвечаю: они изменили методику вызова.
https://wiki.qt.io/New_Signal_Slot_Syntax Старая модель: connect( sender, SIGNAL( valueChanged( QString, QString ) ), receiver, SLOT( updateValue( QString ) ) ); Новая модель: connect( sender, &Sender::valueChanged, receiver, &Receiver::updateValue ); И тогда подсказывает. Или как вариант: запретить Help > About Plugins > Clang Code Model Название: Re: connect сигналы и слоты=( Отправлено: C010ne1 от Август 10, 2019, 15:31 Ура! Заработало!
Последний вариант. Спасибо. |