Название: Как указать слот в дизайнере? Отправлено: xintrea от Февраль 03, 2016, 11:07 Решил начать разбираться с дизайнером. Сделал через мастер оконное приложение с главным виджетом MainWindow. Сделал на нем кнопку viewBufferButton. Выделил эту кнопку и в контекстном меню нажал на "Перейти к слоту" -> clicked().
В результате в классе MainWindow появился метод: Код: void MainWindow::on_viewBufferButton_clicked() Полез настраивать связку сигналов и слотов в "Редактор сигналов и слотов". Выбираю Отправитель: viewBufferButton Сигнал: clicked() Получатель: MainWindow Слот: а вот слот on_viewBufferButton_clicked() выбрать невозможно. Почему так? Он должен и так срабатывать, потому что начинается на "on_", или необходимо еще какие-то действия сделать чтобы в дизайнере увиделся этот слот? Название: Re: Как указать слот в дизайнере? Отправлено: GreatSnake от Февраль 03, 2016, 11:24 Виджеты и диалоги с автосоединением (http://www.doc.crossplatform.ru/qt/4.7.x/designer-using-a-ui-file.html#widgets-and-dialogs-with-auto-connect).
Название: Re: Как указать слот в дизайнере? Отправлено: Bepec от Февраль 03, 2016, 12:43 Он соединяется автоматом, ища on_ИмяВиджета_сигналВиджета(аргументы).
И его соответственно не будет в дизайнере, ибо дизайнер вообще не в курсе что там у вас в коде :) Название: Re: Как указать слот в дизайнере? Отправлено: kambala от Февраль 03, 2016, 14:53 если используешь 11-й стандарт, то проще коннектить к лямбдам в коде (писанины меньше, да и выдумывать имена методам не надо)
Название: Re: Как указать слот в дизайнере? Отправлено: Bepec от Февраль 03, 2016, 15:13 Лямбды эт хорошо, ускоряет написание кода, но вот читаемость становится в разы хуже :)
Название: Re: Как указать слот в дизайнере? Отправлено: GreatSnake от Февраль 03, 2016, 15:38 Зато количество бонусов нивелирует этот сомнительный недостаток.
Название: Re: Как указать слот в дизайнере? Отправлено: __Heaven__ от Февраль 03, 2016, 15:42 kambala, можете привести пример, пожалуйста?
Название: Re: Как указать слот в дизайнере? Отправлено: kambala от Февраль 03, 2016, 15:45 простейший пример из проекта:
Код
тут чуть похитрее примеры: https://github.com/kambala-decapitator/HornAppDesktop/blob/master/widget.cpp Название: Re: Как указать слот в дизайнере? Отправлено: GreatSnake от Февраль 03, 2016, 15:49 Для нашего случая
Код
Название: Re: Как указать слот в дизайнере? Отправлено: kambala от Февраль 03, 2016, 16:01 ^ а зачем это городить, если есть ui->viewBufferButton?
Название: Re: Как указать слот в дизайнере? Отправлено: Igors от Февраль 03, 2016, 16:04 К слову, такую расстановку пробелов
Цитировать if( value ) видел еще в 90-х. Из какой книжки этот пижонский стиль? (наверное что-то типа "идеальный код"). У каких больших авторитетов это переняли? :)Название: Re: Как указать слот в дизайнере? Отправлено: __Heaven__ от Февраль 03, 2016, 16:09 ^ а зачем это городить, если есть ui->viewBufferButton? +1Название: Re: Как указать слот в дизайнере? Отправлено: Old от Февраль 03, 2016, 16:10 У каких больших авторитетов это переняли? :) Можно и по холиварить. :)А что не так? Я так пишу и никакого дискомфорта не испытываю. В отличие от сливающегося в кашу: Код
Название: Re: Как указать слот в дизайнере? Отправлено: __Heaven__ от Февраль 03, 2016, 16:22 О-о-о-о!! А я пишу
Код :D Название: Re: Как указать слот в дизайнере? Отправлено: Old от Февраль 03, 2016, 16:23 О-о-о-о!! А я пишу И у какого пижона вы это подсмотрели? ;)Название: Re: Как указать слот в дизайнере? Отправлено: __Heaven__ от Февраль 03, 2016, 16:25 xintrea, можно на пустом месте формы ткнуть правой кнопкой и выбрать сигналы и слоты. Там добавлять свои, что в хидере упоминаются. Но у всего этого есть минус, из-за которого я этим не пользуюсь. Если переименовать слот, то приходится вновь лезть в ui файл и там его тоже переименовывать. Поэтому все коннекты делаю в отдельном методе (или методах) и вызываю из конструктора.
Название: Re: Как указать слот в дизайнере? Отправлено: __Heaven__ от Февраль 03, 2016, 16:26 И у какого пижона вы это подсмотрели? ;) Мне кажется, что этот пижон был я сам ;DНазвание: Re: Как указать слот в дизайнере? Отправлено: GreatSnake от Февраль 03, 2016, 16:35 ^ а зачем это городить, если есть ui->viewBufferButton? Если есть, то и не нужно, конечно.Я то сам пользуюсь только динамическими формами, поэтому и вставил поиск. К слову, такую расстановку пробелов Когда-то давно рабочий проект достался по наследству. У предыдущих авторов был такой стиль.Цитировать if( value ) видел еще в 90-х. Из какой книжки этот пижонский стиль? (наверное что-то типа "идеальный код"). У каких больших авторитетов это переняли? :)Как-то подсел на него. Имхо, читабельность у него самая лучшая, хотя по-началу мне тоже не нравилась. И почему пижонский? Название: Re: Как указать слот в дизайнере? Отправлено: Racheengel от Февраль 03, 2016, 17:36 имхо, if (value) ... читается лучше всего.
А когда везде налеплено пробелов (или когда их совсем нет) - то в глазах рябит. Название: Re: Как указать слот в дизайнере? Отправлено: GreatSnake от Февраль 03, 2016, 17:38 "имхо" это такая штука...
своя она у каждого ;) Название: Re: Как указать слот в дизайнере? Отправлено: Bepec от Февраль 03, 2016, 18:21 Каждый запоминает свой шаблон операторов.
У кого то if(condition) или if (condition) и при просмотре кода, глаз цепляется именно за эти шаблоны. Хотя я предпочитаю if с пробелом. Название: Re: Как указать слот в дизайнере? Отправлено: __Heaven__ от Февраль 03, 2016, 19:06 Продолжая оффтоп.. Вообще я все читаю без проблем. Но хочу поделиться "интересной" записью.
Код Вот ее не смог прочитать. Минуты 2 потратил, чтобы понять что это за условие Название: Re: Как указать слот в дизайнере? Отправлено: GreatSnake от Февраль 03, 2016, 19:09 Дык всё просто ???
a не равно 0 и b равно true Название: Re: Как указать слот в дизайнере? Отправлено: Bepec от Февраль 03, 2016, 19:11 Раз уж оффтоп, кто нить может поделиться программкой для форматирования кода? :D желательно бесплатной :)
Название: Re: Как указать слот в дизайнере? Отправлено: kambala от Февраль 03, 2016, 19:37 ^ uncrustify
Название: Re: Как указать слот в дизайнере? Отправлено: Racheengel от Февраль 03, 2016, 19:47 Дык всё просто ??? a не равно 0 и b равно true Можно было и так записать тогда: if (a && b) ... Название: Re: Как указать слот в дизайнере? Отправлено: Hellraiser от Февраль 03, 2016, 21:05 Раз уж оффтоп, кто нить может поделиться программкой для форматирования кода? :D желательно бесплатной :) Поставь вижуал студию, версии не ниже 2013, настрой правила форматирования кода, жмем волшебную комбинацию Ctrl K D, наслаждаемся :)Название: Re: Как указать слот в дизайнере? Отправлено: __Heaven__ от Февраль 03, 2016, 21:34 Bepec, никогда не пользовался, но в QtCreator есть плагин Beautifiler. Быть может оно?
|