о всяких видах практических, с примерами использования connect
ну типа связать кнопку с одной формы и вызов метода в другом классе
как через коннект передать параметр дополнительно в вызываемые методы? и т.д.
А эта статейка читана? https://doc.qt.io/qt-6/signalsandslots.html
читана. на английском без примера в полный код и вывода результата я чет не догоняю уже который день как это использовать. есть что-то обучающее на русском? статьи\видео. я так и не нашел из примера у меня все получилось, а вот только надо сделать что-то не по примеру, вроде. наверняка часто используемое - не получается.
Как это нету примеров в полный код? Внизу статьи есть сслыка на: разбор примера https://doc.qt.io/qt-6/qtwidgets-widgets-tetrix-example.html А внизу разбора примера есть ссылка на репо с исходниками примера https://code.qt.io/cgit/qt/qtbase.git/tree/examples/widgets/widgets/tetrix?h=6.2 По поводу русского, даже хз, у Qt слишком хорошая оригинальная документация, потому не было нужды выискивать на русском переводы ее. Вернувшись к оригинальному сообщению с вопросом о передаче доп параметров... Никак. Слот и сигнал должны иметь идентичный набор параметров, иначе коннекта не будет.
вопрос в другом. учебники и литература есть всегда, но нужен преподаватель, который этот материал поможет усвоить. я вот именно это и искал, на русском, статью\видео, кто разбирает эту тему. и как бы это странно не звучало, там слишком много "полнокода", уже написанно с 0. в общем вопрос в подаче, документацию как получается, так пытаюсь пользоваться
Система сигнал/слот сделана так, чтобы максимально отделить эмиттер сигнала от потребителя. Это значит, что нет никакой разницы будет ли ваш сигнал и слот на одной форме ( в одном виджете) или в разных. Работать все будет одинаково
Что значит передать параметр "дополнительно"? Дополнительно к чему? Определите в вашем сигнале столько праметров, сколько хотите.
Ну, из книг лучше всего Бланшетт и Саммерфилд, оно по Qt4, но сути не поменяет, база все та же.
Открываешь вообще любой кусок не-qml документации, и смотришь
если перейти к частному случаю есть myClass с формой, на ней QTreeWidget void Form::on_treeWidget_itemDoubleClicked(QTreeWidgetItem *item, int column) { qDebug()<<item->text(0); QObject::connect(this, ? , ? , &Section::Add); } я не понимаю что мне писать в 2,3 параметре, что бы при даблклике по итему в treewidget, была вызвана функция для объекта класса Section::Add ? у меня есть QList с указателями на объекты Section но он вообще в mainwindow так еще и функция add принимает 1 параметр QString, который из кода выше это item->text(0) и как его туда передать?
По порядку. 1. Что значит "есть myClass с формой"? В коде я у вас вижу класс Form. А myClass это что? 2. Во 2м параметре указывается сигнал из первого параметра, то есть this, то есть Form. В 3м параметре должен указываться объект приёмник. Сигнатуры сигнала и слота должны совпадать. Если вы не можете один объект зацепить прямо на другой потому что нет соответствующих сигналов или слотов, значит нужно делать промежуточные сигналы или слоты с правильной сигнатурой и цеплять их. А внутри уже делать некую предварительную обработку и вызывать другой сигнал или слот
myCLass и Form одно и тоже. вытаскивал код и подчищал контекст, да пропустил это. 2. вот это мне и не понятно, совсем.
Что конкретно непонятно?
void Form::on_treeWidget_itemDoubleClicked(QTreeWidgetItem *item, int column) { qDebug()<<item->text(0); QObject::connect(this, QTreeWidget::itemDoubleClicked , ? , &Section::Add); } во втором будет QTreeWidget::itemDoubleClicked?
Обсуждают сегодня