Russian Qt Forum
Ноябрь 21, 2024, 16:30
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Qt-инструментарий
>
Кастомные слоты в дурацком дизайнере
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Кастомные слоты в дурацком дизайнере (Прочитано 8754 раз)
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Кастомные слоты в дурацком дизайнере
«
:
Март 21, 2017, 21:16 »
В который раз уже с этим долбался... Надо в дизайнере соединить сигнал некоего объекта со слотом другого объекта. На самом деле, получателей сигнала 4 - то есть весь геморрой геморройнее в 4 раза. По какой-то идиотской недоработке добавленный слот получателя в табличном редакторе соединений не виден, и добавить его там никак нельзя. Есть описанная возможность только одна - включить режим визуального соединения кнопкой F4 или в меню, протащить линию от источника к приёмнику, в появившемся окне со списком сигналов и слотов нажать кнопку "Изменить...", в редакторе добавить новый сигнал или слот, и потом соединить. И вообще использовать новый слот далее в табличном редакторе.
Тут начинаются проблемы. Во-первых дело в том, что приёмники на форме перекрыты другими виджетами, и находятся вообще в середине стека. Поэтому визаульное соединение их не видит. Чтобы до них дотянуть линию, их надо предварительно вытащить наверх, дотащить линию, соединить, потом все объекты, которые над ними ниже, надо переместить наверх в нужном пордяке. Болван, который делал дизайнер, не допёр до возможности задавать хотя бы числом порядковый номер слоя в котором лежит объект... Руки бы оторвать только за это.
Но по необъяснимой причине у меня кнопки "Изменить..." обе постоянно не доступны. Я уже всё облазил, и пересобирал, и переqmakeал и... ничего не помогает. При этом проект то нормально собирается без единого warning, и всё работает (ну кроме тех соединений, которые я не могу сделать).
В общем, полез грязными руками и текстовым редактором Kate в mainwindow.ui, и там добавил XML код для нужных соединений. После перезагрузки mainwindow.ui в дизайнер, не сразу, но после нескольких манипуляций с + и - в табличном редакторе они тоже появились. Правда в режиме F4 их флажки-подсказки появляются не там, где надо, а в углу - мне лень было прописывать их координаты. После сборки всё заработало как надо, здесь нет вопросов.
Причём добавление ручных слотов в дизайнере кое-где работает - но только для наследников QMainWindow - справа от формы, в редакторе объектов можно нажать правую кнопку на QMainWindow, и там нормально добавляются слоты и сигналы. Дебил, делавший дизайнер, почему-то не допёр сделать то же самое для любого объекта формы. И чтобы если такого сигнала или слота ещё нет в заголовке и исходнике объекта, то он сначала добавлялся автоматически. А если есть, то всё работало также, как и для QMainWindow.
Вопрос такой - кто-нибудь встречал может быть дизайнер для Qt Creator 4.0.1 с исправлением этих косяков? Может какой-нибудь кастомный, где добавлены нормальные функции редактирования? Или может быть патчи соответствующие? А то это угрёбище недоделанное периодически начинает бесить...
Записан
2^7-1 == 127, задумайтесь...
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Кастомные слоты в дурацком дизайнере
«
Ответ #1 :
Март 21, 2017, 21:33 »
А почему в коде не законнектить?
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Кастомные слоты в дурацком дизайнере
«
Ответ #2 :
Март 21, 2017, 22:12 »
Цитата: Пантер от Март 21, 2017, 21:33
А почему в коде не законнектить?
+1
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Кастомные слоты в дурацком дизайнере
«
Ответ #3 :
Март 21, 2017, 22:40 »
Цитата: Пантер от Март 21, 2017, 21:33
А почему в коде не законнектить?
ПАТАМУШТА!!!...
Все объекты - кастомные плагины. MainWindow - только интегратор плагинов. Код и у плагинов, и у главного окна один и тот же для разных приложений. Приложения различаются только формами дизайнера и используемыми внешними данными. Соответственно все соединения между плагинами могут быть только внешними. Проще всего изначально было в дизайнере это сделать. Конечно надо бы свой редактор, но это сильно замедлило бы разработку - я такой редактор уже делал, влоб его использовать нельзя, а переделывать долго. С нуля делать ещё дольше. Дизайнер по идее делает всё, что надо, но до чего же криво он спроектирован. По-детски.
«
Последнее редактирование: Март 21, 2017, 22:44 от Гурман
»
Записан
2^7-1 == 127, задумайтесь...
TheGringerEye
Гость
Re: Кастомные слоты в дурацком дизайнере
«
Ответ #4 :
Март 22, 2017, 01:15 »
Как-то слишком эмоционально, мне кажется или дизайнер разрабатывался, как дизайнер форм, а не редактор бизнес логики приложения?
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Кастомные слоты в дурацком дизайнере
«
Ответ #5 :
Март 22, 2017, 12:32 »
Но формы дизайнера сами по себе - это отдельные классы после работы UIC.
Почему нельзя от них отнаследоваться и там сделать всю работу по коннекту.
Кто-то ж должен быть "контроллером UI" - а дизайнер не для этого.
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Кастомные слоты в дурацком дизайнере
«
Ответ #6 :
Март 22, 2017, 13:29 »
Цитата: TheGringerEye от Март 22, 2017, 01:15
Как-то слишком эмоционально, мне кажется или дизайнер разрабатывался, как дизайнер форм, а не редактор бизнес логики приложения?
Если это просто редактор форм - в нём не должно быть возможности соединения сигналов и слотов. Если есть такая возможность - значит это уже редактирование бизнес-логики. А оно сделано крайне уродливо.
Там ещё другая кривизна есть... если в креаторе открыты два или более проектов, то дизайнер по очевидной глупости его разработчика использует маршруты не активного проекта, а... первого сверху среди открытых. То есть, он ищет файл ui_mainwindow.h не в каталогах активного проекта, а в каталогах проекта, который в списке открытых самый верхний. При том, что активным может быть любой. Полный идиотизм.
«
Последнее редактирование: Март 22, 2017, 13:46 от Гурман
»
Записан
2^7-1 == 127, задумайтесь...
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: Кастомные слоты в дурацком дизайнере
«
Ответ #7 :
Март 23, 2017, 06:10 »
Мне вообще не нравится Креаторный дизайнер, до сих пор пользуюсь автономным дизайнером.
Записан
Юра.
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: Кастомные слоты в дурацком дизайнере
«
Ответ #8 :
Март 23, 2017, 12:32 »
Цитировать
MainWindow - только интегратор плагинов. Код и у плагинов, и у главного окна один и тот же для разных приложений. Приложения различаются только формами дизайнера и используемыми внешними данными.
что мешает написать простенький скрипт-генератор mainwindow.cpp?
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Кастомные слоты в дурацком дизайнере
«
Ответ #9 :
Март 23, 2017, 16:29 »
Цитата: kambala от Март 23, 2017, 12:32
Цитировать
MainWindow - только интегратор плагинов. Код и у плагинов, и у главного окна один и тот же для разных приложений. Приложения различаются только формами дизайнера и используемыми внешними данными.
что мешает написать простенький скрипт-генератор mainwindow.cpp?
Именно это и мешает - mainwindow.cpp один и тот же для всех программ. То есть из всех проектов ссылка на один и тот же файл идёт. Так надо.
«
Последнее редактирование: Март 23, 2017, 16:32 от Гурман
»
Записан
2^7-1 == 127, задумайтесь...
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Кастомные слоты в дурацком дизайнере
«
Ответ #10 :
Март 23, 2017, 16:31 »
Цитата: lit-uriy от Март 23, 2017, 06:10
Мне вообще не нравится Креаторный дизайнер, до сих пор пользуюсь автономным дизайнером.
А в чём там разница? Я думал автономный функционально не отличается. Всё время как-то на автомате использую встроенный в креатор.
«
Последнее редактирование: Март 23, 2017, 16:34 от Гурман
»
Записан
2^7-1 == 127, задумайтесь...
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: Кастомные слоты в дурацком дизайнере
«
Ответ #11 :
Март 23, 2017, 20:48 »
Цитата: Гурман от Март 23, 2017, 16:29
Цитата: kambala от Март 23, 2017, 12:32
Цитировать
MainWindow - только интегратор плагинов. Код и у плагинов, и у главного окна один и тот же для разных приложений. Приложения различаются только формами дизайнера и используемыми внешними данными.
что мешает написать простенький скрипт-генератор mainwindow.cpp?
Именно это и мешает - mainwindow.cpp один и тот же для всех программ. То есть из всех проектов ссылка на один и тот же файл идёт. Так надо.
ну так формы ж разные, ты говоришь — их и сделать параметрами скрипта
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Кастомные слоты в дурацком дизайнере
«
Ответ #12 :
Март 25, 2017, 22:59 »
Цитата: kambala от Март 23, 2017, 20:48
ну так формы ж разные, ты говоришь — их и сделать параметрами скрипта
Нет у меня никакого скрипта и не нужен он. Мне нужно удобное визуальное рисование и удобное задание соединений сигналов и слотов. В дизайнере это сделано очень криво. Может быть для следующих версий я сделаю просто загрузку таблицы соединений из текстового файла, который будет вшиваться в ресурсы. Но это всё равно будет обход недостатков дизайнера, а не нормальное решение. Для нормального решения придётся делать свой редактор вместо дизайнера, с такими же функциями, но нормально проработанный.
Записан
2^7-1 == 127, задумайтесь...
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...