Перейти к содержимому
Zed

Помощь в gui

Рекомендуемые сообщения

Подскажите как сделать кнопку которая будет выполнять определённые действия если на неё нажать мышкой

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ненавижу я всякие интерфейсы с кнопками, где нужно целиться мышкой и тыкать на кнопку. Клавиатура — наше всё. Тем не менее, если-таки жаждешь клепать кнопки, рекомендую глянуть в сторону GML от Крутого.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ну или не кнопки а допустим список действий вот фото схематический пример. Передвигать стрелкой для выбора 

post-12951-0-26892800-1437393405_thumb.png

Изменено пользователем zed

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ну или не кнопки а допустим список действий вот фото схематический пример. Передвигать стрелкой для выбора 

необходимо создать фигуру, аки прямоугольник, обозначающий границы кнопки, написать функцию, которая, при перехвате события клика по экрану - проверит координаты клика, и если таковые в пределах твоей "кнопки" - запустит ту или иную функцию

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ну или не кнопки а допустим список действий вот фото схематический пример. Передвигать стрелкой для выбора 

GML это позволяет

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

GML слишком тяжел, использовать его только в одной программе не рационально. В ОС интерфейсы создаются так же как и в СС.

Для кнопки надо перехватывать эвенты касания или клика, и запускать нужную функцию при совпадении координат.

К примеру в таблице хранятся координаты первой кнопки:

tbl = {Xmin = 10, Ymin = 10, Xmax = 15, Ymax = 15}
При эвенте клика проверяем координаты эвента:

if x >= tml.Xmin and y >= tbl.Ymin and x <= tbl.Xmax and y <= tbl.Ymax then ... end
Для переключения между элементами при помощи стрелок просто элементы храним в таблице, а эвенты нажатия на стрелки запускают смещение + или - по таблице, соответственно подсвечивая выбранный элемент из координат в таблице.

 

Вот пара туторов по СС:

http://www.computercraft.info/forums2/index.php?/topic/11046-clickable-buttons-in-cc/

http://www.computercraft.info/forums2/index.php?/topic/16925-how-to-create-a-touch-screen-on-a-terminal/

Изменено пользователем Doob

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

if touch_x > x1 and touch_x < x2 and touch_y > y1 and touch_y <y2 then print('Кнопка нажата') end

 

Засунь это в event.listen

 

Или реализуй управление с клавиатуры. Я буду очень рад :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

if touch_x > x1 and touch_x < x2 and touch_y > y1 and touch_y <y2 then print('Кнопка нажата') end

 

Засунь это в event.listen

 

Или реализуй управление с клавиатуры. Я буду очень рад :)

Ты плохой человек потому что тебе лень самому учиться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Засел писать gui-библиотеку. Есть мысль сделать на ее основе систему визуального программирования

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Засел писать gui-библиотеку. Есть мысль сделать на ее основе систему визуального программирования

Было бы неплохо

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Засел писать gui-библиотеку. Есть мысль сделать на ее основе систему визуального программирования

Не понял, еще один велосипед? Чем она будет лучше рабочего GML? Я тут планирую сделать GML одним файлом и сжать Crunch'ем. Будет и маленький и удобный. А когда допишу Арбузер это будет вообще бомба, которая будет лучше GML в разы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

Не понял, еще один велосипед? Чем она будет лучше рабочего GML?
 Это будет не велосипед, а самокат. Смотрел я GML, он мне тяжеловатым показался для той задачи, которую решаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 Это будет не велосипед, а самокат. Смотрел я GML, он мне тяжеловатым показался для той задачи, которую решаю.

Пертолёт.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Пертолёт.

сделанный напильником... Из велосипеда... С костылями вместо винтов... С багом вместо пилота...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 Смотрел я GML, он мне тяжеловатым показался

Что значит "тяжеловат"? Много файлов? Большой вес файлов? Большое потребление оперативки и процессора? Сложная имплементация?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Что значит "тяжеловат"? Много файлов? Большой вес файлов? Большое потребление оперативки и процессора? Сложная имплементация?

Лично я ничего не понял:) Нужны какие-то стили, даже вникать не хотелось. Куда проще просто написать createButton(x, y, weight, height, hotKey, function, data)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Лично я ничего не понял :) Нужны какие-то стили, даже вникать не хотелось. Куда проще просто написать createButton(x, y, weight, height, hotKey, function, data)

Разобраться как подключить стиль куда проще чем написать свой гуи. А обертку createButton можно и самому сделать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Разобраться как подключить стиль куда проще чем написать свой гуи. А обертку createButton можно и самому сделать.

Да знаю я,что делается это легко. Но, всё-же, лишняя легкая либа не помешает, согласись:) 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Что значит "тяжеловат"? Много файлов? Большой вес файлов? Большое потребление оперативки и процессора? Сложная имплементация?

Да, действительно...

Много файлов - библиотека, на мой взгляд, должна храниться в одном файле в папке lib, что бы пользователь не думал что куда разложить.

Большой вес файлов -  Мне казалось, что минимальный набор компонент можно реализовать гораздо меньшим кодом. Хотя на этот счет уже не уверен.

Хотя...

Большое потребление оперативки и процессора - не тестировал.

Сложная имплементация - если не рассматривать упомянутые Асумонстром стили, использование библиотеки не слишком сложно даже для новичка. Интерфейс моей библиотеки существенно не отличается от GML, хотя использование некоторых компонент будет иное, заточенное под мои потребности.

Разумеется, всё сказанное мной не отрицает библиотеку GML. Свою я делаю исключительно для удовольствия. Что получится, посмотрим.

Изменено пользователем Zer0Galaxy

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да знаю я,что делается это легко. Но, всё-же, лишняя легкая либа не помешает, согласись:)

 

Там стиль можно не прописывать и там тоже есть gui:createButton

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...