Название: Проблема с передачей параметра в слот Отправлено: Ksar13th от Март 19, 2012, 11:39 Создаю динамическую кнопку buf2 и прописываю строчку
Код: QObject::connect(buf2, SIGNAL(clicked()),papa, SLOT(press_the_button())); Код: void press_the_button() Но проблема - как передать в слот имя кнопки, например. СЛедующая конструкция не помогла(догадываюсь почему, но не скажу, не уверен): Код: QObject::connect(buf2, SIGNAL(clicked()),papa, SLOT(press_the_button(name))); Буду рад подсказке - каким образом передать имя кнопку в слот?) Название: Re: Проблема с передачей параметра в слот Отправлено: mutineer от Март 19, 2012, 11:45 "Неправильно ты, Дядя Федор, бутерброд ешь..." (с)
http://doc.crossplatform.ru/qt/4.7.x/html-qt/signalsandslots.html Название: Re: Проблема с передачей параметра в слот Отправлено: Syveren от Март 19, 2012, 14:32 qobject_cast<QPushButton*>(sender())->text();
Название: Re: Проблема с передачей параметра в слот Отправлено: Ksar13th от Март 19, 2012, 14:35 mutineer
Ееее, как минимум понял почему не работало и понял что делает конект. Щас пойму как решить мою проблему. Шпасибо. Syveren Мой текущий уровень в QT и C++ не позволяет понять твою строчку.((( Пока почитаю статью от Мутинира.)) Название: Re: Проблема с передачей параметра в слот Отправлено: Ksar13th от Март 19, 2012, 15:13 Так. ок, та статья помогла понять.
Но сделал на основе этой статьи: http://qt.osdn.org.ua/signalmapper.html Кок раз то, о чём ты Syveren, говорил, похоже. Всего лишь добавил в слот для кнопок строчку QPushButton *b = (QPushButton *)sender(); В итоге в b получаю кнопку, по которой нажали. Не спорю. пока всё грязно, но потихоньку разбираюсь.) Название: Re: Проблема с передачей параметра в слот Отправлено: mutineer от Март 19, 2012, 15:21 Так. ок, та статья помогла понять. Но сделал на основе этой статьи: http://qt.osdn.org.ua/signalmapper.html Кок раз то, о чём ты Syveren, говорил, похоже. Всего лишь добавил в слот для кнопок строчку QPushButton *b = (QPushButton *)sender(); В итоге в b получаю кнопку, по которой нажали. Не спорю. пока всё грязно, но потихоньку разбираюсь.) C-style каст использовать не надо - проблем не оберешься потом Название: Re: Проблема с передачей параметра в слот Отправлено: Syveren от Март 19, 2012, 16:31 qobject_cast - преобразование типов для наслдеников QObject.
Вообще мне кажется лучше делать через signalmapper. если через sender, то тогда лучше проверить sender(), ведь слот можно вызвать и напрямую QPushButton * but = qobject_cast<QPushButton*>(sender()); //безопасней чем (QPushButton *)sender(); //Q_ASSERT(but); if(!but) return; ... Название: Re: Проблема с передачей параметра в слот Отправлено: Ksar13th от Март 19, 2012, 17:09 Цитировать ведь слот можно вызвать и напрямую Проблему понял.Программа не большая - всего одиннадцать кнопок будут пользоваться данным слотом. А также у меня пока нет полноценного опыта в QT и в классах я пока слаб, так что не брезгую грязным кодом и тп. Пока главное чтобы работало и пользователи в дальнейшем не прибежали жаловаться, что нашли какой то жёсткий баг. В последствии буду вгрызаться глубже. Спасибо за помощь.) *ps: продолжаю канючить - приведите код, который у меня на форме в каком нить компоненте начнёт проигрывать видео файл =3 позязязязя. Знаю, что нужно гуглить Phonon и уже реализовал запуск аудио файла... хотя теорию не грыз. С видео пока траблы... плохо сплю, предвкушая как буду с ним бороться после того, как разгребу текущие траблы.) Название: Re: Проблема с передачей параметра в слот Отправлено: mutineer от Март 19, 2012, 17:10 *ps: продолжаю канючить - приведите код, который у меня на форме в каком нить компоненте начнёт проигрывать видео файл =3 позязязязя. Знаю, что нужно гуглить Phonon и уже реализовал запуск аудио файла... хотя теорию не грыз. С видео пока траблы... плохо сплю, предвкушая как буду с ним бороться после того, как разгребу текущие траблы.) http://doc.qt.nokia.com/qtmobility/multimedia.html Название: Re: Проблема с передачей параметра в слот Отправлено: sudo от Март 19, 2012, 17:18 А также у меня пока нет полноценного опыта в QT и в классах я пока слаб, так что не брезгую грязным кодом и тп. Страшная тайна! Тут очень мало у кого хоть вообще минимальный опыт в QT. В Qt народ шарит, а в QuickTime сомнительно qobject_cast - преобразование типов для наслдеников QObject. Вообще мне кажется лучше делать через signalmapper. если через sender, то тогда лучше проверить sender(), ведь слот можно вызвать и напрямую QPushButton * but = qobject_cast<QPushButton*>(sender()); //безопасней чем (QPushButton *)sender(); //Q_ASSERT(but); if(!but) return; ... Или так Код
Название: Re: Проблема с передачей параметра в слот Отправлено: andrew.k от Март 19, 2012, 18:23 А также у меня пока нет полноценного опыта в QT и в классах я пока слаб, так что не брезгую грязным кодом и тп. Страшная тайна! Тут очень мало у кого хоть вообще минимальный опыт в QT. В Qt народ шарит, а в QuickTime сомнительно Название: Re: Проблема с передачей параметра в слот Отправлено: Ksar13th от Март 19, 2012, 18:38 Цитировать ...а в QuickTime сомнительно... упс ::)И mutineer, спасибо. Выручаешь.) Название: Re: Проблема с передачей параметра в слот Отправлено: sudo от Март 19, 2012, 19:16 Название: Re: Проблема с передачей параметра в слот Отправлено: Ksar13th от Март 19, 2012, 21:44 Еееее, таки нагуглил как видео проиграть через Phonon. Чёт, смотря со статистической позиции, не получается у меня дружить в оф сайтами(хотя теорию на них рассписывают круто... практику дарует гугл)) =( ... нашёл три вопроса в инете - у одного не работало видео, у другого звук, у третьего не подключались необходимые файлы... в итоге собрал своего урода =3 ... сижу горжусь...)))
И вдруг кому, из таких же неполноценных бедолаг как я, пригодится мой вариант: Код: //подключение(не факт что здесь нужно всё... просто лень выискивать что нужно) И да, спасибо за помощь(без сарказма... направить - это уже помочь)). Название: Re: Проблема с передачей параметра в слот Отправлено: V1KT0P от Март 19, 2012, 21:58 в итоге собрал своего урода =3 ... сижу горжусь...))) Если есть время и желание сделать лучше, то я бы посоветовал попробовать прикрутить VLC. Я просто фанатею от него, но правда к проектам я его не подключал. Но так как у него есть GUI на Qt то думаю подключить не сложновато будет, зато сколько плюшек получишь...Название: Re: Проблема с передачей параметра в слот Отправлено: Ksar13th от Март 19, 2012, 23:53 Я планирую в течении ближайшего месяца перейти с Винды на Линукс(хотя, щас заплачу, в Линуксе вообще опыта нет... ну да не суть) и уже на нём в совершенстве овладеть Qt - так как ощутил, что возможности открываются при его использовании почти безграничные(тем более после СиБилдера, с которого сполз пять дней назад... пристрелил его и закопал... теперь QtCreatore моя новая любовь). Так вот к чему я это - щас времени нет - у меня осталось шесть дней, чтоб закончить прогу-интерфейс и натравить её на ком-порт(в Билдере и Dev-Cpp такое уже делал, так что не думаю, что возникнут проблемы с портом). А вот после сдачи текущего проекта, продолжу доставать тут всех вопросами и развиваться в этой сфере(пока даже что такое VLC не могу сообразить... разве что что-то знакомое))).
Пойду посплю.)) Название: Re: Проблема с передачей параметра в слот Отправлено: V1KT0P от Март 20, 2012, 00:01 (пока даже что такое VLC не могу сообразить... разве что что-то знакомое))). VLC: http://www.videolan.org/ (http://www.videolan.org/) - Мой любимый медиаплеер =). Понимает ОЧЕНЬ много форматов, может налету кодировать в другой формат, принимать поток из сети, вещать поток в сеть...Название: Re: Проблема с передачей параметра в слот Отправлено: Kurles от Март 20, 2012, 00:04 в итоге собрал своего урода =3 ... сижу горжусь...))) Если есть время и желание сделать лучше, то я бы посоветовал попробовать прикрутить VLC. Я просто фанатею от него, но правда к проектам я его не подключал. Но так как у него есть GUI на Qt то думаю подключить не сложновато будет, зато сколько плюшек получишь...Название: Re: Проблема с передачей параметра в слот Отправлено: Ksar13th от Март 20, 2012, 00:59 Святые хомяки, ведь слышал о нём, да и у соседа видел на ноуте, но в своё время не проникся. А ведь у гадёныша открытый исходный код и есть, как говорите, возможность встраивать его в свои проекты. Чёёёрт, если успею - замучу видео в проге на нём. Спс за ссылки!))
|