Можно ли сформировать нестандартное меню

Простейшие вопросы в области инженерной разработки
Аватара пользователя
JohnChaban
leader
leader
Сообщения: 669
Зарегистрирован: 18 фев 2010, 13:26
Версия LabVIEW: 2015,2016
Откуда: Город Сосновый Бор Ленинградская Область
Контактная информация:

Можно ли сформировать нестандартное меню

Сообщение JohnChaban »

Всем привет
Можно ли сформировать меню в labview2009 такое как на картинке?
Вложения
MENU1.jpg
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1327
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2024
Откуда: Германия
Благодарил (а): 1 раз
Поблагодарили: 38 раз
Контактная информация:

Re: Можно ли сформировать меню

Сообщение AndreyDmitriev »

Можно.
Аватара пользователя
kiparym
advanced
advanced
Сообщения: 178
Зарегистрирован: 06 сен 2011, 08:52
Версия LabVIEW: 8.2 & 2011
Откуда: г. Саров
Поблагодарили: 1 раз
Контактная информация:

Re: Можно ли сформировать меню

Сообщение kiparym »

Для этих целей применяется «Tree Control» (см. примеры).
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1327
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2024
Откуда: Германия
Благодарил (а): 1 раз
Поблагодарили: 38 раз
Контактная информация:

Re: Можно ли сформировать меню

Сообщение AndreyDmitriev »

kiparym писал(а):Для этих целей применяется «Tree Control» (см. примеры).
Применять Tree Control для организации меню - это всё равно, что заколачивать шурупы молотком вместо того, чтобы воспользоваться отвёрткой.

Впрочем, автор топика не написал, что ему важнее - имелось ли ввиду именно вложенное меню (его можно стандартными средствами сделать) - если имелось ввиду меню панели, то Edit->RunTime Menu... а если у контрола - то правая кнопка мыши, затем Advanced->Shortcut Menu->Edit..., либо, если имелось ввиду меню, разворачивающееся вверх, как показано на картинке, а не вниз, как это стандартное меню делает — в этом случае задачка заметно усложняется и без опыта на месте автора я б не стал с этим связываться, а воспользовался тем, что есть в LabVIEW.
Аватара пользователя
JohnChaban
leader
leader
Сообщения: 669
Зарегистрирован: 18 фев 2010, 13:26
Версия LabVIEW: 2015,2016
Откуда: Город Сосновый Бор Ленинградская Область
Контактная информация:

Re: Можно ли сформировать меню

Сообщение JohnChaban »

Задачу я чуток не так написал
Нужно чтобы например длина строки главного меню занимала не всю дину окна а часть некоторую часть
Или например чтобы главное меню расположить не горизонтально а вертикально слева или справа виртуального прибора.
Можно ли такое осушествить.
Если да как?
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1327
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2024
Откуда: Германия
Благодарил (а): 1 раз
Поблагодарили: 38 раз
Контактная информация:

Re: Можно ли сформировать меню

Сообщение AndreyDmitriev »

Понятно. Осуществить можно, но не очень просто. Перенести стандартное меню в вертикальную позицию, как это уже понятно, невозможно. Можно в качестве первого уровня сложить просто колонку кнопок. Декорации надо поправить так, чтобы они визуально от меню не отличались. Затем два варианта - либо воспользоваться встроенными контекстными меню у каждой кнопки (в event структуре можно перебросить правую кнопку на левую, так что эти меню будут открываться по щелчку левой кнопкой) - так будет легче создавать эти меню динамически (если надо) и обрабатывать от них события, либо другой вариант - динамически вызывать SubVI, у которого заголовок и бордюр выключены, а на панели массив элементов - будет иллюзия того, что это меню (будет сложнее обрабатывать сообщения от кликов по элементам, кроме того придётся позаботиться о том, чтобы эти панели прятались, когда мышка нажимается за их пределами, но зато и свободы больше - можно, к примеру, сделать меню с иконками). Ещё можно поискать готовое решение, скажем на основе .net, но мне такое не попадалось. Такое вообще мало кто делает - ведь часть пользователей будет впадать в ступор от такого расположения меню. Характер вопроса говорит о том, что опыта у Вас пока не очень много, так что остановитесь на стандартном меню.
Аватара пользователя
Pavel Krivozubov

Activity Bronze
professor
professor
Сообщения: 4421
Зарегистрирован: 07 фев 2008, 16:39
Награды: 3
Версия LabVIEW: 7.0 - 2013
Откуда: г. Электросталь
Благодарил (а): 24 раза
Поблагодарили: 9 раз
Контактная информация:

Re: Можно ли сформировать меню

Сообщение Pavel Krivozubov »

JohnChaban писал(а):Задачу я чуток не так написал
Нужно чтобы например длина строки главного меню занимала не всю дину окна а часть некоторую часть
Или например чтобы главное меню расположить не горизонтально а вертикально слева или справа виртуального прибора.
Можно ли такое осушествить.
Если да как?
Вообще кстати говоря выложенная тобой структура очень напоминает TabControl)
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1327
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2024
Откуда: Германия
Благодарил (а): 1 раз
Поблагодарили: 38 раз
Контактная информация:

Re: Можно ли сформировать меню

Сообщение AndreyDmitriev »

Да, Павел прав - Tab контрол тоже можно использовать, но в этом случае допилить его до полного сходства с меню не удастся - придётся чуть изменить концепцию.
Вот, кстати, меню, в стиле "Ribbon", выполненное на Tab контроле:
https://decibel.ni.com/content/groups/u ... in-labview
Аватара пользователя
JohnChaban
leader
leader
Сообщения: 669
Зарегистрирован: 18 фев 2010, 13:26
Версия LabVIEW: 2015,2016
Откуда: Город Сосновый Бор Ленинградская Область
Контактная информация:

Re: Можно ли сформировать меню

Сообщение JohnChaban »

Дело все в том что как стандартное меню сделать я знаю
Я просто думал есть какие нибудь примочки.
Насчет опыта с LaBVIEW работаю более 5 лет.
Просто заказчик ставит нетривиальные задачи вот и прошу помощи у коллег на форуме.
Спасибо за ответы и советы.
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1327
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2024
Откуда: Германия
Благодарил (а): 1 раз
Поблагодарили: 38 раз
Контактная информация:

Re: Можно ли сформировать меню

Сообщение AndreyDmitriev »

Ну если более пяти лет, то можно и взяться, конечно.
Но реализация зависит от того, насколько похоже должно быть меню похоже на настоящее меню - по поведению и дизайну. Чем меньше оно будет похоже на настоящее меню, тем будет проще. А если "один в один" с тем меню, что сверху, но по вертикали, то придётся повозиться. Я бы начал с кнопок с собственными меню. Всплывающие панели тоже можно использовать, но там мне видится проблема с их закрытием: при щелчке по основному меню всплывает панелька, если мышка уходит за пределы панели дочернего меню, она должна оставаться на экране, но должна закрыться, если пользователь щёлкнет вне области меню (а это может быть и за пределами основного окна приложения - ну, на десктопе, к примеру. Ну и начнётся процесс перехвата щелчков мыши за пределами окна, работа с событиями входа мыши в область панели и выхода из неё... Возможность добавления пунктов вменю тоже надо будет предусмотреть. Ну потом ещё горячие клавиши, навигация без мыши, обработка клавиши Alt, первых (подчёркнутых) букв меню, выключение отдельных пунктов, и т.д. В общем так себе удовольствие.
IORIK
adviser
adviser
Сообщения: 240
Зарегистрирован: 14 дек 2010, 20:46
Версия LabVIEW: 7.0; 8.2

Re: Можно ли сформировать меню

Сообщение IORIK »

JohnChaban писал
Нужно чтобы например длина строки главного меню занимала не всю дину окна а часть некоторую часть
Или например чтобы главное меню расположить не горизонтально а вертикально
На мой взгляд, строка меню на то и строка, чтоб занимать всю длину программы, даже если там все одна опция "Close".
У меня был некоторый опыт работы с меню. Начинал я с Edit->RunTime Menu..., но потом перешел на программную компоновку меню. При этом при исполнении самой программы можно добавлять пункты в меню, их делать "активный/неактивный", "видимый/невидимый" и т.д. Этот вариант создания меню мне кажется гибким, удобными наиболее простым.
fig1.jpg
А по поводу вертикального меню - попотеть придется. AndreyDmitriev уже описал прелести этого.
Аватара пользователя
Vasiliy Baev

Activity Gold Bronze
leader
leader
Сообщения: 545
Зарегистрирован: 31 окт 2011, 09:02
Награды: 4
Версия LabVIEW: 2019
Откуда: Санкт-Петербург
Благодарил (а): 8 раз
Поблагодарили: 10 раз
Контактная информация:

Re: Можно ли сформировать меню

Сообщение Vasiliy Baev »

Аватара пользователя
Aleksey Feoktistov

Activity Gold Silver Black
leader
leader
Сообщения: 898
Зарегистрирован: 20 янв 2009, 00:15
Награды: 6
Версия LabVIEW: 2015
Откуда: Tyumen
Поблагодарили: 2 раза
Контактная информация:

Re: Можно ли сформировать меню

Сообщение Aleksey Feoktistov »

Vasa, замечательная ссылка!
А может на оф. сайте есть пример, где показано как в меню картинки вставить?
Аватара пользователя
Vasiliy Baev

Activity Gold Bronze
leader
leader
Сообщения: 545
Зарегистрирован: 31 окт 2011, 09:02
Награды: 4
Версия LabVIEW: 2019
Откуда: Санкт-Петербург
Благодарил (а): 8 раз
Поблагодарили: 10 раз
Контактная информация:

Re: Можно ли сформировать меню

Сообщение Vasiliy Baev »

Aleksey Feoktistov, мне пример найти не удалось.
Посмотрите ещё вот такой вариант:
https://decibel.ni.com/content/groups/u ... abview-net
Аватара пользователя
Aleksey Feoktistov

Activity Gold Silver Black
leader
leader
Сообщения: 898
Зарегистрирован: 20 янв 2009, 00:15
Награды: 6
Версия LabVIEW: 2015
Откуда: Tyumen
Поблагодарили: 2 раза
Контактная информация:

Re: Можно ли сформировать меню

Сообщение Aleksey Feoktistov »

Это ж целый тулкит с готовым примером!
Ценный матерал, спасибо
Ответить

Вернуться в «Для чайников»