Добрый день!
вопрос в следующем:
CreateMenu(0, WindowID(#Window))
MenuTitle("&Open...")
как обработать клик, если тыкнули в Open...?
Отредактировано amer (11.10.2022 20:18:21)
PureBasic - форум |
Привет, Гость! Войдите или зарегистрируйтесь.
Вы здесь » PureBasic - форум » Вопросы по PureBasic » клик по меню верхнего уровня
Добрый день!
вопрос в следующем:
CreateMenu(0, WindowID(#Window))
MenuTitle("&Open...")
как обработать клик, если тыкнули в Open...?
Отредактировано amer (11.10.2022 20:18:21)
OpenWindow(0, 200, 200, 200, 100, "Menu Example") CreateMenu(0, WindowID(0)) MenuItem(0, "Open") MenuTitle("Project") MenuItem(1, "Open" +Chr(9)+"Ctrl+O") MenuItem(2, "Save" +Chr(9)+"Ctrl+S") MenuItem(3, "Save as"+Chr(9)+"Ctrl+A") MenuItem(4, "Close" +Chr(9)+"Ctrl+C") Repeat Event = WaitWindowEvent() If Event = #PB_Event_Menu Debug EventMenu() EndIf Until Event=#PB_Event_CloseWindow
спасибо, в винде работает , а вот под кедами - отказывается (
[22:46:30] Waiting for executable to start...
[22:46:30] Executable type: Linux - x64 (64bit, Unicode)
[22:46:30] Executable started.
[22:46:30] [WARNING] Line: 4
[22:46:30] [WARNING] Gtk (CRITICAL): gtk_menu_shell_insert: assertion 'GTK_IS_MENU_SHELL (menu_shell)' failed
[22:47:33] The Program execution has finished.
Может линукс такое не поддерживает?
Попробуйте запустить этот код
OpenWindow(0,200,200,300,200,"Menu",#PB_Window_SystemMenu) If CreateMenu(0, WindowID(0)) OpenSubMenu("File") MenuItem(01,"New") MenuItem(02,"Open") MenuBar() MenuItem(03,"eXit") CloseSubMenu() OpenSubMenu("Edit") MenuItem(11,"Cut") MenuItem(12,"Copy") MenuItem(13,"Paste") CloseSubMenu() MenuItem( 20, "Menu 3") MenuItem( 21, "Menu 4") MenuItem( 22, "Menu 5") MenuItem( 24, "About") EndIf Repeat Select WaitWindowEvent() Case #PB_Event_Menu Select EventMenu() ; To see which menu has been selected Case 3 ; eXit End Case 24 ; About MessageRequester("ABOUT","Mein Programm, (c) 1923 bei Zonk!",0) Default MessageRequester("Info", "MenuItem: "+Str(EventMenu()), 0) EndSelect Case #PB_Event_CloseWindow End EndSelect ForEver
Еще можно попробовать подсистемы GTK2 и QT.
Спасибо, Пётр!
не работает, а каким образом QT задействовать?
Спасибо, Пётр!
не работает, а каким образом QT задействовать?
В меню "Компилятор -> Настройки компилятора ..." есть поле "Библиотека подсистемы", там указать qt или GTK2.
Для интереса, а мои проги на кедах работают? Там во многих есть меню, смотрите Synchronization или RegExp, там есть выпадающие меню на кнопках. Если не работает, то может проблема в ОС? Какая ОС? У меня Минт, арч, федора, Xubuntu, EndeavourOS с оболочками хфсе, Cinnamon, везде меню работает. Кстати кеды есть в арче второй оболочкой для пробы, могу проверить. Проверил (кде-плазма), меню нормально работает.
Проверил примеры Петра, первый работает, второй вообще не отображает меню, а в коде предупреждения жёлтым цветом в начале строки с восклицательным знаком. Если во втором примере добавить строку MenuTitle("Project") после CreateMenu(), то меню появляется.
Отредактировано AZJIO (12.10.2022 09:47:31)
AZJIO
Операционная система: Kubuntu 22.04
Версия KDE Plasma: 5.24.6
Версия KDE Frameworks: 5.92.0
Версия Qt: 5.15.3
Версия ядра: 5.15.0-48-generic (64-бита)
Графическая платформа: X11
Процессоры: 4 × Intel® Core™ i5-3570 CPU @ 3.40GHz
Память: 23,4 ГиБ ОЗУ
Графический процессор: NVE7
потыкал в твои проги (деб пакеты не устанавливал, запускал из пурика) - почти все запускаются и возможно работают (сильно проверять времени нет), например куему у меня не установлен, прога создания фстаба, не понял куда она его записывать будет (исходник не изучал), в етц? так там же права нужны, а со старым, что будет?...
amer
Для версии 22.04 лучше компилировать проги, а не устанавливать, так как я собирал на версии 19. У меня есть 22 на другом компе, но нет желания активно тестировать, а на своей я пользуюсь программами и они отлично работают.
На счёт fstab, надо кнопку поменять на "Создать в буфер" или посказку, а то действительно никто не хотел бы рисковать. На самом деле вылетает сообщение с результатом и он ещё отправляется в буфер обмена. На форуме арч как всегда сразу всё в штыки, типа fstab это пережиток прошлого сейчас через какие то юниты добавляются. В общем для меня это упрощает кучу телодвижений.
Отредактировано AZJIO (12.10.2022 19:00:52)
PureBasic сборка | PureBasic для Windows | 25.04.2024 |
Вы здесь » PureBasic - форум » Вопросы по PureBasic » клик по меню верхнего уровня