Advertisement
Qivex

QButton-Example Variants

Apr 14th, 2018
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.95 KB | None | 0 0
  1. os.loadAPI("apis/qmain")
  2. os.loadAPI("apis/qformat")
  3. os.loadAPI("apis/qbutton")
  4.  
  5. function initialize()
  6.     --Monitor initialisieren
  7.     mon = qmain.setDefaultScreen("top")
  8.     mon.setTextScale(0.5)
  9.     qmain.clear()
  10.     --Globale Variablen setzen
  11.     beenden = false
  12.     rs_output_back = false
  13.     --Buttons definieren
  14.     qbutton.setButton("color_toggle", "Farbe ändern", setRandomColor, nil, {2, 2}, {15, 3}, {"d", "h"})
  15.     qbutton.setButton("redstone_toggle", "Redstone aus", toggleRedstone, nil, {2, 7}, {14, 3}, {"a", "f"})
  16.     qbutton.setButton("write_label", "Label anzeigen", qformat.writeMarkup, {tostring(os.getComputerLabel()), {21, 13}}, {2, 12}, {16, 3}, {"a", "f"})
  17.     qbutton.setButton("end_prog", "Beenden", endProgram, nil, {2, 17}, {9, 3}, {"d", "a"})
  18. end
  19.  
  20. function setRandomColor()
  21.     qbutton.changeButton("color_toggle", "color", {"d", string.char(math.random(97, 112))}) --zufällige Farbe von a-p
  22. end
  23.  
  24. function endProgram()
  25.     beenden = true
  26. end
  27.  
  28. function toggleRedstone()
  29.     --Eigentliche Aufgabe
  30.     rs_output_back = not(rs_output_back)
  31.     rs.setOutput("back", rs_output_back)
  32.     --Anpassen der Hintergrundfarbe
  33.     new_backcolor = ((rs_output_back == true) and "i" or "f")
  34.     qbutton.changeButton("redstone_toggle", "color", {"d", new_backcolor})
  35.     --Anpassen der Caption
  36.     new_caption = "Redstone "..((rs_output_back == true) and "an" or "aus")
  37.     qbutton.changeButton("redstone_toggle", "caption", new_caption)
  38. end
  39.  
  40. function screen()
  41.     qbutton.drawButton("color_toggle")
  42.     qbutton.drawButton("redstone_toggle")
  43.     qbutton.drawButton("write_label")
  44.     qbutton.drawButton("end_prog")
  45. end
  46.  
  47. --Jedes klick-basierte Programm sollte etwa folgenden Aufbau haben:
  48. initialize()
  49. screen()
  50. while (beenden == false) do
  51.     local event, side, x, y = os.pullEvent("monitor_touch") --Klick feststellen
  52.     if qbutton.clickOn({x, y}, side) then                   --Überprüfen ob Button geklickt wurde
  53.         screen()                                            --NUR wenn auch was getan wurde muss Screen alles neuzeichnen
  54.     end
  55. end
  56. qmain.clear()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement