Tab Control

Обсуждение, связанное с разработкой ПО верхнего уровня
Аватара пользователя
Select
developer
developer
Сообщения: 281
Зарегистрирован: 12 дек 2017, 23:56
Версия LabVIEW: 18
Откуда: Врата надежды.
Поблагодарили: 2 раза

Tab Control

Сообщение Select »

Из-за переизбытка содержимого на вкладках присутствует ощутимая задержка в переходах от одной вкладки к другой.
К сожалению я не могу отказаться от Tab Control т.к. мне нужен доступ к манипулированию данными на других sub.vi :dntknw:
Любые советы и рекомендации.
Или хотя бы индикация об инициализации процесса перехода, чтоб это не выглядело как неответ на команду. :drink:
LabView 14,18
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5462
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 86 раз

Re: Tab Control

Сообщение IvanLis »

Select писал(а): 14 май 2020, 14:54 Из-за переизбытка содержимого на вкладках присутствует ощутимая задержка в переходах от одной вкладки к другой.
К сожалению я не могу отказаться от Tab Control т.к. мне нужен доступ к манипулированию данными на других sub.vi
Любые советы и рекомендации.
Или хотя бы индикация об инициализации процесса перехода, чтоб это не выглядело как неответ на команду
Раз у Вас есть SubVI, то для их отображения используется SubPanel :wink:

Ну а решение следующее....
Убираете TabControl, делаете кнопки, которые будут инициировать переключение между SubVI, в принципе кнопки аналогичны Pages из Tab.
По нажатии на кнопку, встраиваете FP необходимого SubVI в SubPanel.
Получается, что отображается только FP одного из всех SubVI, а остальные работают в "теневом" режиме.
Аватара пользователя
Select
developer
developer
Сообщения: 281
Зарегистрирован: 12 дек 2017, 23:56
Версия LabVIEW: 18
Откуда: Врата надежды.
Поблагодарили: 2 раза

Re: Tab Control

Сообщение Select »

IvanLis, :super: благодарю, до этого не пробовал работать с суб панелями, возьму на вооружение.
LabView 14,18
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5462
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 86 раз

Re: Tab Control

Сообщение IvanLis »

Select писал(а): 14 май 2020, 19:17 IvanLis, :super: благодарю, до этого не пробовал работать с суб панелями, возьму на вооружение.
Тогда нужно обязательно попробовать, т.к. TabControl не поддерживает автомасштабирование элементов на Pages, а в SubPanel все работает отлично.
Аватара пользователя
Juri
I/O
I/O
Сообщения: 263
Зарегистрирован: 19 апр 2017, 23:06
Версия LabVIEW: 2021
Благодарил (а): 13 раз
Поблагодарили: 6 раз

Re: Tab Control

Сообщение Juri »

Можно попробовать избавиться от части графиков или путем выбора кнопкой менять назначение одного графика. Графики обычно тормозят. Или например вместо отображения 10 000 точек отображать 1000, визуально возможно ничего не поменяется.
Аватара пользователя
Select
developer
developer
Сообщения: 281
Зарегистрирован: 12 дек 2017, 23:56
Версия LabVIEW: 18
Откуда: Врата надежды.
Поблагодарили: 2 раза

Re: Tab Control

Сообщение Select »

Построил sub.vi переключаю, но как выяснилось задача состоит не в отображении суб :vi: а в контролах предварительных настроек этих sub.vi
Напрашивается мысль что надо на все эти контролы 2746 элементов в общей сумме строить отдельные sub.vi по каждой вкладке.
Относительно сокращения отображаемых пикселей идея интересная. Как понимаю через ноды свойств Tab control? Такое возможно?
screenshot 2020-05-14 001.png
LabView 14,18
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5462
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 86 раз

Re: Tab Control

Сообщение IvanLis »

Select писал(а): 14 май 2020, 23:56 Относительно сокращения отображаемых пикселей идея интересная. Как понимаю через ноды свойств Tab control? Такое возможно?
Нет
Select писал(а): 14 май 2020, 23:56 Построил sub.vi переключаю, но как выяснилось задача состоит не в отображении суб :vi: а в контролах предварительных настроек этих sub.vi
Напрашивается мысль что надо на все эти контролы 2746 элементов в общей сумме строить отдельные sub.vi по каждой вкладке.
Вам необходимо проработать архитектуру своего приложения.
Инициализация - "предварительная настройка", необходима только при запуске программы. При дальнейшей работе в этом необходимости нет. Может их хранить в файл конфигурации или отображать по запросу.
Я Вам не предлагал сделать SubPanel для каждого контрола (хотя иногда приходится, в этом случае в окне сразу несколько SuPanel встроено), я рекомендовал сгруппировать в SubVI то, что у Вас на Pages отображается.
Иначе в чем необходимость TabControl...
Select писал(а): 14 май 2020, 14:54К сожалению я не могу отказаться от Tab Control т.к. мне нужен доступ к манипулированию данными на других sub.vi
Если Вы не можете вместить все элементы на экране, то опять же стоит задуматься об эргономике своего приложения.

И к стати, в цикле обработки событий интерфейса (то что Вы приложили) нет необходимости добавлять паузу.
Аватара пользователя
Select
developer
developer
Сообщения: 281
Зарегистрирован: 12 дек 2017, 23:56
Версия LabVIEW: 18
Откуда: Врата надежды.
Поблагодарили: 2 раза

Re: Tab Control

Сообщение Select »

    IvanLis писал(а): 15 май 2020, 02:49
    Если Вы не можете вместить все элементы на экране, то опять же стоит задуматься об эргономике своего приложения.
    Все элементы размещены на Tab Control, как я ранее писал, проблема в задержках при переключении с одной вкладки на другую, , их у меня 9, в запущенном режиме.
    Иногда этих задержек нет, иногда это может занимать до 2 - 3 с.
    я рекомендовал сгруппировать в SubVI то, что у Вас на Pages отображается.
    На основной панели все компоненты от всех терминалов Sub.vi сгруппированы между собой, если Вы это имели ввиду.
    Инициализация - "предварительная настройка", необходима только при запуске программы
    в моем случае у меня заложены функции ввода переменных в запущенном режиме, после чего введенный алгоритм запускается к исполнению. :vi: в работе
    LabView 14,18
    Аватара пользователя
    Kosist

    Activity Gold
    expert
    expert
    Сообщения: 1236
    Зарегистрирован: 21 фев 2011, 23:44
    Награды: 2
    Версия LabVIEW: 2013-2020
    Благодарил (а): 23 раза
    Поблагодарили: 30 раз
    Контактная информация:

    Re: Tab Control

    Сообщение Kosist »

    Select писал(а): 15 май 2020, 10:56 На основной панели все компоненты от всех терминалов Sub.vi сгруппированы между собой, если Вы это имели ввиду.
    А можно бы было сделать вот так:
    UI.png
    Мы делили апельсин - много наших полегло...
    Аватара пользователя
    IvanLis

    Activity Professionalism Tutorials Gold Man of the year 2012
    Автор
    guru
    guru
    Сообщения: 5462
    Зарегистрирован: 02 дек 2009, 17:44
    Награды: 7
    Версия LabVIEW: 2015, 2016
    Откуда: СССР
    Благодарил (а): 28 раз
    Поблагодарили: 86 раз

    Re: Tab Control

    Сообщение IvanLis »

    Select писал(а): 15 май 2020, 10:56Иногда этих задержек нет, иногда это может занимать до 2 - 3 с.
    Послушайте, если есть проблемы, то проблемы именно в неправильной организации архитектуры ПО.
    Вы не хотите понять, то что пишу. Либо Вы не понимаете разницы между Pages, как составляющей TabControl и SubPanel, как механизма отображения FP SubVI на FP другой VI.
    Если у Вас сейчас
    Select писал(а): 14 май 2020, 23:56все эти контролы 2746 элементов в общей сумме
    перерисовываются в одном UI потоке, а наверняка там есть еще и графики, то это достаточно ресурсоемкий процесс.
    Я точно не могу утверждать, но мне кажется, что все элементы расположенные на TabControl, независимо от того видимы они или нет, обновляются и перерисовываются.
    Я же предложил правильно сгруппировать и разместить контролы по SubVI.
    В зависимости от желания пользователя, встраивать FP необходимого SubVI в SubPanel, при этом остальные элементы интерфейса (скрытые) не будут потреблять ресурс.
    Зачем обновлять данные в контролах, которые пользователю не доступны и не видны.
    Есть механизмы блокировать перерисовку FP, но в Вашем случае это вряд ли поможет, т.к. непонятно, по какому событию размораживать FP.

    И вообще я с трудом могу представить BD программы имеющей 2746 контрола :crazy:
    Аватара пользователя
    Select
    developer
    developer
    Сообщения: 281
    Зарегистрирован: 12 дек 2017, 23:56
    Версия LabVIEW: 18
    Откуда: Врата надежды.
    Поблагодарили: 2 раза

    Re: Tab Control

    Сообщение Select »

    Kosist писал(а): 15 май 2020, 22:59
    Select писал(а): 15 май 2020, 10:56 На основной панели все компоненты от всех терминалов Sub.vi сгруппированы между собой, если Вы это имели ввиду.
    А можно бы было сделать вот так:
    UI.png
    Насколько я правильно понимаю эту идею, по Вашему мне нужно на каждый массив контролов из 16 рядов построить sub.vi, и далее переключаться между ними на суб панели?
    Каждый ряд является вынесенным в основную панель масивом контролов от других sub.vi их на данный момент значительно больше чем то, что представлено на видео.
    IvanLis,
    В свойствах панели я отключаю многие вещи перед компиляцией проекта в exe, кстати в исходнике эта проблема отпадает, все нормально переключается, эффект задержки присутствует только в :vi:
    Относительно эргономики, она разработана по образу и подобию концепта многих SCADA для работы с PLC, в каких то моментах даже оптимизирована для интуитивного освоения.
    Такое количество контролов на основной панели не перегружает память, в основном цикле присутствуют структуры прерываний и все то, что в реальном времени не имеет отношения к конкретной выполняемой процедуре остановлено пока к нему не происходит очередное обращение. Обращение юзеров к control tab, происходит в процессе инициализации в процессе прототипирования поведенческой модели.
    И вообще я с трудом могу представить BD программы имеющей 2746 контрола
    А что смущает, мне на практике приходилось наблюдать присутствие в проектах более 1000 sub.vi, если оно так задумано девелоппером, так тому и быть...
    LabView 14,18
    Аватара пользователя
    Kosist

    Activity Gold
    expert
    expert
    Сообщения: 1236
    Зарегистрирован: 21 фев 2011, 23:44
    Награды: 2
    Версия LabVIEW: 2013-2020
    Благодарил (а): 23 раза
    Поблагодарили: 30 раз
    Контактная информация:

    Re: Tab Control

    Сообщение Kosist »

    Select писал(а): 16 май 2020, 01:55 Насколько я правильно понимаю эту идею, по Вашему мне нужно на каждый массив контролов из 16 рядов построить sub.vi, и далее переключаться между ними на суб панели?
    Каждый ряд является вынесенным в основную панель масивом контролов от других sub.vi их на данный момент значительно больше чем то, что представлено на видео.
    Неправильно Вы понимаете. У Вас каждый ряд - набор одинаковых контроллов. У них только разная нумерация, и данные берут из разных виаек. Значит, можно переделать программу так, чтобы вместо этих 16 рядов контролов было 16 рядов субпанелей, и в каждую загружалась одна и та же виайка-интерфейс (на которой бы отображались те контролы, что находятся в одном ряде). И так везде, по всему приложению, где у Вас повторяются контролы.
    Select писал(а):А что смущает, мне на практике приходилось наблюдать присутствие в проектах более 1000 sub.vi, если оно так задумано девелоппером, так тому и быть...
    То что Вы такое видели - не означает, что это хорошо. Это значит, что к сожалению, с :labview: работает еще много "девелоперов", которым лень саморазвиваться, которым лень писать правильный код, учиться новым паттернам и архитектурам. Легче ведь слепить все в огромную кашу, а потом расказывать какое крутое и большое приложение разрабатывалось годами. Был у меня коллега, который рассказывал, как они целый год разрабатывали приложение - а когда показал его, то было ясно что так долго его "разрабатывали", потому что лепили все в кучу, а потом не могли нормально тестить и исправлять баги. А по-сути, там работы было на пару месяцев всего. Но это ведь нужно напрягаться, учиться - а это многим делать лень.
    Мы делили апельсин - много наших полегло...
    Artem.spb

    Activity Автор
    professor
    professor
    Сообщения: 3391
    Зарегистрирован: 31 июл 2011, 23:05
    Награды: 2
    Версия LabVIEW: 12-18
    Благодарил (а): 49 раз
    Поблагодарили: 172 раза
    Контактная информация:

    Re: Tab Control

    Сообщение Artem.spb »

    Select писал(а): 16 май 2020, 01:55
    И вообще я с трудом могу представить BD программы имеющей 2746 контрола
    А что смущает, мне на практике приходилось наблюдать присутствие в проектах более 1000 sub.vi, если оно так задумано девелоппером, так тому и быть...
    не надо путать 100500 контролов в ОДНОМ :vi: и 1000 сабов в одном проекте.
    Много сабов - это правильно (если конечно это делается не ради количества, а ради модульности). Всё в одной куче - нет.
    Аватара пользователя
    Select
    developer
    developer
    Сообщения: 281
    Зарегистрирован: 12 дек 2017, 23:56
    Версия LabVIEW: 18
    Откуда: Врата надежды.
    Поблагодарили: 2 раза

    Re: Tab Control

    Сообщение Select »

    Kosist писал(а): 16 май 2020, 12:21 У Вас каждый ряд - набор одинаковых контроллов. У них только разная нумерация, и данные берут из разных виаек. Значит, можно переделать программу так, чтобы вместо этих 16 рядов контролов было 16 рядов субпанелей, и в каждую загружалась одна и та же виайка-интерфейс (на которой бы отображались те контролы, что находятся в одном ряде). И так везде, по всему приложению, где у Вас повторяются контролы.
    Согласен, могу, мне прийдется изменить дизайн всех ФБ суб :vi: чтоб они выглядели миниатюрными в виде строки, кроме того мне пока не совсем понятно, как отображать в основной ФБ остальные субпанели на остальные 128 строк. Можно конечно кнопкой каждый переключать, насколько это будет удобно, нужно на стороне попробовать чтоб не наломать дров в проекте.
    Поэкспериментирую, результат выставлю, благодарю.
    LabView 14,18
    Artem.spb

    Activity Автор
    professor
    professor
    Сообщения: 3391
    Зарегистрирован: 31 июл 2011, 23:05
    Награды: 2
    Версия LabVIEW: 12-18
    Благодарил (а): 49 раз
    Поблагодарили: 172 раза
    Контактная информация:

    Re: Tab Control

    Сообщение Artem.spb »

    Иногда мне кажется, что ответы подбираются оп принципу "как бы возразить".
    Вам рекомендуют не переделать все :vi: , а взять сделать ОДИН новый :vi: интерморда которого будет строкой индикаторов. И этот новый саб клонировать и отобразить десяток-другой раз на экране через саб-панели.
    А уж откуда они будут брать данные - дело десятое. Сейчас индикаторы эти данные успешно получают, так что и в новые сабы переслать можно.
    Ответить
    • Похожие темы
      Ответы
      Просмотры
      Последнее сообщение

    Вернуться в «Лицевая панель»