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

Простейшие вопросы в области инженерной разработки

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

Postby JohnChaban on 02 Feb 2012, 10:50

Всем привет
Можно ли сформировать меню в labview2009 такое как на картинке?
Attachments
MENU1.jpg
User avatar
JohnChaban
master
master
 
Posts: 453
Joined: 18 Feb 2010, 13:26
Location: Город Сосновый Бор Ленинградская Область
LabVIEW Version: 2015,2016
Karma: 0

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

Postby AndreyDmitriev on 02 Feb 2012, 13:49

Можно.
User avatar
AndreyDmitriev
VIP
VIP
 
Posts: 1225
Joined: 03 Feb 2010, 00:42
Location: Германия
Medals: 6
Activity (1) Professionalism (1) Tutorials (1) Gold (1) Black (2)
LabVIEW Version: 6.1 - 2016
Karma: 433

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

Postby kiparym on 02 Feb 2012, 13:54

Для этих целей применяется «Tree Control» (см. примеры).
User avatar
kiparym
assistant
assistant
 
Posts: 142
Joined: 06 Sep 2011, 08:52
Location: г. Саров
LabVIEW Version: 8.2 & 2011
Karma: 27

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

Postby AndreyDmitriev on 02 Feb 2012, 14:03

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


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

Впрочем, автор топика не написал, что ему важнее - имелось ли ввиду именно вложенное меню (его можно стандартными средствами сделать) - если имелось ввиду меню панели, то Edit->RunTime Menu... а если у контрола - то правая кнопка мыши, затем Advanced->Shortcut Menu->Edit..., либо, если имелось ввиду меню, разворачивающееся вверх, как показано на картинке, а не вниз, как это стандартное меню делает — в этом случае задачка заметно усложняется и без опыта на месте автора я б не стал с этим связываться, а воспользовался тем, что есть в LabVIEW.
User avatar
AndreyDmitriev
VIP
VIP
 
Posts: 1225
Joined: 03 Feb 2010, 00:42
Location: Германия
Medals: 6
Activity (1) Professionalism (1) Tutorials (1) Gold (1) Black (2)
LabVIEW Version: 6.1 - 2016
Karma: 433

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

Postby JohnChaban on 02 Feb 2012, 14:09

Задачу я чуток не так написал
Нужно чтобы например длина строки главного меню занимала не всю дину окна а часть некоторую часть
Или например чтобы главное меню расположить не горизонтально а вертикально слева или справа виртуального прибора.
Можно ли такое осушествить.
Если да как?
User avatar
JohnChaban
master
master
 
Posts: 453
Joined: 18 Feb 2010, 13:26
Location: Город Сосновый Бор Ленинградская Область
LabVIEW Version: 2015,2016
Karma: 0

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

Postby AndreyDmitriev on 02 Feb 2012, 14:42

Понятно. Осуществить можно, но не очень просто. Перенести стандартное меню в вертикальную позицию, как это уже понятно, невозможно. Можно в качестве первого уровня сложить просто колонку кнопок. Декорации надо поправить так, чтобы они визуально от меню не отличались. Затем два варианта - либо воспользоваться встроенными контекстными меню у каждой кнопки (в event структуре можно перебросить правую кнопку на левую, так что эти меню будут открываться по щелчку левой кнопкой) - так будет легче создавать эти меню динамически (если надо) и обрабатывать от них события, либо другой вариант - динамически вызывать SubVI, у которого заголовок и бордюр выключены, а на панели массив элементов - будет иллюзия того, что это меню (будет сложнее обрабатывать сообщения от кликов по элементам, кроме того придётся позаботиться о том, чтобы эти панели прятались, когда мышка нажимается за их пределами, но зато и свободы больше - можно, к примеру, сделать меню с иконками). Ещё можно поискать готовое решение, скажем на основе .net, но мне такое не попадалось. Такое вообще мало кто делает - ведь часть пользователей будет впадать в ступор от такого расположения меню. Характер вопроса говорит о том, что опыта у Вас пока не очень много, так что остановитесь на стандартном меню.
User avatar
AndreyDmitriev
VIP
VIP
 
Posts: 1225
Joined: 03 Feb 2010, 00:42
Location: Германия
Medals: 6
Activity (1) Professionalism (1) Tutorials (1) Gold (1) Black (2)
LabVIEW Version: 6.1 - 2016
Karma: 433

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

Postby Pavel Krivozubov on 02 Feb 2012, 14:55

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

Вообще кстати говоря выложенная тобой структура очень напоминает TabControl)
User avatar
Pavel Krivozubov
professor
professor
 
Posts: 4365
Joined: 07 Feb 2008, 16:39
Location: г. Электросталь
Medals: 3
Activity (2) Bronze (1)
LabVIEW Version: 7.0 - 2013
Karma: 213
hardware I/O PDA VIP vision bloggers internet teachers students freelance

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

Postby AndreyDmitriev on 02 Feb 2012, 15:01

Да, Павел прав - Tab контрол тоже можно использовать, но в этом случае допилить его до полного сходства с меню не удастся - придётся чуть изменить концепцию.
Вот, кстати, меню, в стиле "Ribbon", выполненное на Tab контроле:
https://decibel.ni.com/content/groups/u ... in-labview
User avatar
AndreyDmitriev
VIP
VIP
 
Posts: 1225
Joined: 03 Feb 2010, 00:42
Location: Германия
Medals: 6
Activity (1) Professionalism (1) Tutorials (1) Gold (1) Black (2)
LabVIEW Version: 6.1 - 2016
Karma: 433

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

Postby JohnChaban on 02 Feb 2012, 17:36

Дело все в том что как стандартное меню сделать я знаю
Я просто думал есть какие нибудь примочки.
Насчет опыта с LaBVIEW работаю более 5 лет.
Просто заказчик ставит нетривиальные задачи вот и прошу помощи у коллег на форуме.
Спасибо за ответы и советы.
User avatar
JohnChaban
master
master
 
Posts: 453
Joined: 18 Feb 2010, 13:26
Location: Город Сосновый Бор Ленинградская Область
LabVIEW Version: 2015,2016
Karma: 0

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

Postby AndreyDmitriev on 02 Feb 2012, 18:03

Ну если более пяти лет, то можно и взяться, конечно.
Но реализация зависит от того, насколько похоже должно быть меню похоже на настоящее меню - по поведению и дизайну. Чем меньше оно будет похоже на настоящее меню, тем будет проще. А если "один в один" с тем меню, что сверху, но по вертикали, то придётся повозиться. Я бы начал с кнопок с собственными меню. Всплывающие панели тоже можно использовать, но там мне видится проблема с их закрытием: при щелчке по основному меню всплывает панелька, если мышка уходит за пределы панели дочернего меню, она должна оставаться на экране, но должна закрыться, если пользователь щёлкнет вне области меню (а это может быть и за пределами основного окна приложения - ну, на десктопе, к примеру. Ну и начнётся процесс перехвата щелчков мыши за пределами окна, работа с событиями входа мыши в область панели и выхода из неё... Возможность добавления пунктов вменю тоже надо будет предусмотреть. Ну потом ещё горячие клавиши, навигация без мыши, обработка клавиши Alt, первых (подчёркнутых) букв меню, выключение отдельных пунктов, и т.д. В общем так себе удовольствие.
User avatar
AndreyDmitriev
VIP
VIP
 
Posts: 1225
Joined: 03 Feb 2010, 00:42
Location: Германия
Medals: 6
Activity (1) Professionalism (1) Tutorials (1) Gold (1) Black (2)
LabVIEW Version: 6.1 - 2016
Karma: 433

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

Postby IORIK on 02 Feb 2012, 20:05

JohnChaban писал
Нужно чтобы например длина строки главного меню занимала не всю дину окна а часть некоторую часть
Или например чтобы главное меню расположить не горизонтально а вертикально

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

fig1.jpg

А по поводу вертикального меню - попотеть придется. AndreyDmitriev уже описал прелести этого.
IORIK
adviser
adviser
 
Posts: 240
Joined: 14 Dec 2010, 20:46
LabVIEW Version: 7.0; 8.2
Karma: 45

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

Postby Vasiliy Baev on 02 Feb 2012, 21:50

User avatar
Vasiliy Baev
master
master
 
Posts: 483
Joined: 31 Oct 2011, 09:02
Location: Санкт-Петербург
Medals: 4
Activity (1) Gold (1) Bronze (2)
LabVIEW Version: 2013
Karma: 138
I/O VIP

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

Postby Aleksey Feoktistov on 03 Feb 2012, 16:42

Vasa, замечательная ссылка!
А может на оф. сайте есть пример, где показано как в меню картинки вставить?
User avatar
Aleksey Feoktistov
leader
leader
 
Posts: 897
Joined: 20 Jan 2009, 00:15
Location: Tyumen
Medals: 6
Activity (2) Gold (1) Silver (1) Black (2)
LabVIEW Version: 2015
Karma: 82
VIP students

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

Postby Vasiliy Baev on 03 Feb 2012, 17:06

Aleksey Feoktistov, мне пример найти не удалось.
Посмотрите ещё вот такой вариант:
https://decibel.ni.com/content/groups/u ... abview-net
User avatar
Vasiliy Baev
master
master
 
Posts: 483
Joined: 31 Oct 2011, 09:02
Location: Санкт-Петербург
Medals: 4
Activity (1) Gold (1) Bronze (2)
LabVIEW Version: 2013
Karma: 138
I/O VIP

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

Postby Aleksey Feoktistov on 03 Feb 2012, 17:17

Это ж целый тулкит с готовым примером!
Ценный матерал, спасибо
User avatar
Aleksey Feoktistov
leader
leader
 
Posts: 897
Joined: 20 Jan 2009, 00:15
Location: Tyumen
Medals: 6
Activity (2) Gold (1) Silver (1) Black (2)
LabVIEW Version: 2015
Karma: 82
VIP students

Next

Return to Для чайников

Who is online

Users browsing this forum: Yandex and 12 guests

cron