Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require "rubygems"
- gem "rubyscript2exe"
- require "rubyscript2exe"
- #bindet Tk in Rubyscript2exe ein
- RUBYSCRIPT2EXE.tk = true
- #ohne Konsole
- RUBYSCRIPT2EXE.rubyw = true
- require 'tk'
- require "tk/toplevel"
- require 'tk/bindtag'
- require 'tk/entry'
- require 'yaml'
- class Mama
- #TK Fenster wird gestartet
- def run
- @window.overrideredirect(true)
- @window.mainloop
- end
- def initialize
- #Erstellt das Hauptfenster
- @window = TkRoot.new(:title => 'Lebensmittel-Verwaltung', 'height' => 674, 'width' => 1000) do
- root.geometry('+80+80')
- end
- @my_hash = Hash.new
- @yaml_file = File.new 'data/leb.txt'
- @my_hash = YAML.load(@yaml_file)
- @yaml_file.close
- @my_einkauf = Hash.new
- @yaml_file1 = File.new 'data/einkauf.txt'
- @my_einkauf = YAML.load(@yaml_file1)
- @yaml_file1.close
- bild_label()
- lebensmittelverwatltung_label()
- button_add()
- button_deleate()
- liste()
- button_end()
- end
- #Label mit Lebensmittelbild
- def bild_label
- image1 = TkPhotoImage.new { file "bilder/Lebensmittel.gif" }
- TkLabel.new('height' => 674, 'width' => 1000) do
- place 'x' => 0, 'y' => 0
- image image1
- end
- end
- #Label mit der Aufschgrift: Mamas Lebensmittel Verwaltung
- def lebensmittelverwatltung_label
- TkLabel.new('height' => 1, 'width' => 26) do
- text 'Lebensmittel-Verwaltung'
- place 'x' => 145, 'y' => 3
- font TkFont.new('Comic 35 bold')
- relief 'raised'
- foreground 'orange'
- background 'blue'
- end
- end
- #Button zum öffnen des imports
- def button_add
- image1 = TkPhotoImage.new { file "bilder/add.gif" }
- a = TkButton.new('height' => 94, 'width' => 94) do
- place 'x' => 279, 'y' => 480
- image image1
- cursor "hand2"
- relief 'groove'
- end
- a.bind('ButtonRelease-1') do
- delat_lvl()
- @win1.state = 'withdrawn'
- add_lvl()
- end
- end
- #Button um etwas herauszunehmen
- def button_deleate
- image1 = TkPhotoImage.new { file "bilder/delate.gif" }
- a = TkButton.new('height' => 94, 'width' => 94) do
- place 'x' => 725, 'y' => 480
- image image1
- cursor "hand2"
- relief 'groove'
- end
- a.bind('ButtonRelease-1') do
- add_lvl()
- @win.state = 'withdrawn'
- delat_lvl()
- end
- end
- #Button um Programm zu beenden
- def button_end
- image1 = TkPhotoImage.new { file "bilder/exit.gif" }
- bt = TkButton.new('height' => 30, 'width' => 30) do
- place 'x' => 965, 'y' => 1
- image image1
- cursor "hand2"
- relief 'flat'
- end
- bt.bind('ButtonRelease-1') do
- @window.destroy
- end
- end
- #Liste mit Inhalt
- def liste
- @lis = TkListbox.new('height' => 14, 'width' => 49) do
- place 'x' => 279, 'y' => 90
- font TkFont.new('Comic 15 bold')
- background 'Forest green'
- end
- @bar = TkScrollbar.new(@window) do
- place 'x' => 822, 'y' => 90
- end
- @lis.yscrollbar(@bar)
- @ausg = @my_hash.collect do |key, value|
- @lis.insert 'end', "#{key} #{value}x"
- end
- end
- #Topp lvl add
- def add_lvl
- begin
- @win.destroy
- rescue
- end
- @win = TkToplevel.new(:title => 'Im|Export', 'height' => 560, 'width' => 250) do
- relief 'ridge'
- geometry('+97+155')
- background 'Green Yellow'
- end
- @e1 = TkEntry.new(@win) do
- place 'x' => 50, 'y' => 130
- font TkFont.new('Comic 10 bold')
- end
- @e4 = TkEntry.new(@win) do
- place 'x' => 50, 'y' => 200
- font TkFont.new('Comic 10 bold')
- end
- button = TkButton.new(@win) do
- image1 = TkPhotoImage.new { file "bilder/exit.gif" }
- place 'x' => 212, 'y' => 2
- image image1
- end
- button.bind('ButtonRelease-1') do
- @win.state = 'withdrawn'
- end
- TkLabel.new(@win) do
- place 'x' => 50, 'y' => 30
- text 'Im|Export'
- background 'blue'
- relief 'groove'
- font TkFont.new('Comic 20 bold')
- foreground 'Green Yellow'
- end
- TkLabel.new(@win) do
- place 'x' => 50, 'y' => 102
- text 'Lebensmittel:'
- background 'Brown'
- relief 'groove'
- font TkFont.new('Comic 10 bold')
- foreground 'yellow'
- end
- TkLabel.new(@win) do
- place 'x' => 50, 'y' => 174
- text 'Anzahl:'
- background 'Brown'
- relief 'groove'
- font TkFont.new('Comic 10 bold')
- foreground 'yellow'
- end
- v1 = TkVariable.new
- einkauf = proc do
- @bt445.state = 'disabled'
- @bt445.configure('text', '')
- @bt445.configure('background', 'Green Yellow')
- @bt445.configure('relief', 'flat')
- @bt445.configure('image', '')
- @bt445.bind('ButtonRelease-1') do
- end
- @entry = TkEntry.new(@win) do
- width 3
- place 'x' => 25, 'y' => 448
- font TkFont.new('Comic 10 bold')
- end
- TkLabel.new(@win) do
- text "x soll es im Lager sein"
- width 17
- place 'x' => 53, 'y' => 448
- font TkFont.new('Comic 10 bold')
- background 'Green Yellow'
- end
- image1 = TkPhotoImage.new { file "bilder/hacken.gif" }
- @bt444 = TkButton.new(@win) do
- text "Rein Damit"
- font TkFont.new('Comic 10 bold')
- place 'x' => 65, 'y' => 485
- image image1
- end
- @bt444.bind('ButtonRelease-1') do
- @leb1 = @e1.value
- @leb2 = @e4.value.to_i
- @my_hash.each do |leb, anz|
- @testen = 0
- if leb == @leb1
- Tk.messageBox(
- 'type' => "ok",
- 'icon' => "warning",
- 'title' => "Nicht vorhanden",
- 'message' => "Das Produkt ist bereits vorhanden"
- )
- end
- end
- if @testen == 0
- @my_hash[@leb1] = @leb2
- liste()
- end
- File.open("data/leb.txt", "w") {|output|
- output.write(@my_hash.to_yaml)
- }
- end
- @leb1 = @e1.value
- @leb24 = @entry.value.to_i
- @my_einkauf.each do |leb, anz|
- @my_einkauf[@leb1] = @leb24
- end
- File.open("data/einkauf.txt", "w") do |output|
- output.write(@my_einkauf.to_yaml)
- end
- end
- image1 = TkPhotoImage.new { file "bilder/ok.gif" }
- @bt12 = TkButton.new(@win) do
- place 'x' => 20, 'y' => 300
- image image1
- end
- @bt12.bind('ButtonRelease-1') do
- TkCheckButton.new(@win) do
- place 'x' => 20, 'y' => 415
- text "In Einkaufsliste einbinden"
- font TkFont.new('Comic 10 bold')
- variable v1
- command einkauf
- background 'Green Yellow'
- end
- image2 = TkPhotoImage.new { file "bilder/hacken.gif" }
- @bt445 = TkButton.new(@win) do
- font TkFont.new('Comic 10 bold')
- place 'x' => 80, 'y' => 470
- image image2
- end
- @bt445.bind('ButtonRelease-1') do
- @leb1 = @e1.value
- @leb2 = @e4.value.to_i
- @my_hash.each do |leb, anz|
- @testen = 0
- if leb == @leb1
- Tk.messageBox(
- 'type' => "ok",
- 'icon' => "warning",
- 'title' => "Nicht vorhanden",
- 'message' => "Das Produkt ist bereits vorhanden"
- )
- end
- end
- if @testen == 0
- @my_hash[@leb1] = @leb2
- liste()
- end
- File.open("data/leb.txt", "w") {|output|
- output.write(@my_hash.to_yaml)
- }
- end
- end
- image1 = TkPhotoImage.new { file "bilder/raus.gif" }
- @bt15 = TkButton.new(@win) do
- place 'x' => 130, 'y' => 300
- image image1
- end
- @bt15.bind('ButtonRelease-1') do
- @leb1 = @e1.value
- @leb2 = @e4.value.to_i
- @my_hash.each do |leb, anz|
- @testen4 = 0
- if leb == @leb1
- @my_hash.delete("#{@leb1}")
- liste()
- Tk.messageBox(
- 'type' => "ok",
- 'icon' => "warning",
- 'title' => "Nicht vorhanden",
- 'message' => "Das Produkt wurde entfernt"
- )
- add_lvl()
- @testen4 = 1
- end
- end
- if @testen4 == 0
- Tk.messageBox(
- 'type' => "ok",
- 'icon' => "warning",
- 'title' => "Nicht vorhanden",
- 'message' => "Das Produkt ist nicht vorhanden"
- )
- add_lvl()
- end
- File.open("data/leb.txt", "w") {|output|
- output.write(@my_hash.to_yaml)
- }
- end
- end
- # Top lvl deleat
- def delat_lvl
- begin
- @win1.destroy
- rescue
- end
- @win1 = TkToplevel.new(:title => 'Verwaltung', 'height' => 560, 'width' => 250) do
- relief 'ridge'
- geometry('+97+155')
- background 'Blue'
- end
- @e2 = TkEntry.new(@win1) do
- place 'x' => 50, 'y' => 130
- font TkFont.new('Comic 10 bold')
- end
- @e3 = TkEntry.new(@win1) do
- place 'x' => 50, 'y' => 200
- font TkFont.new('Comic 10 bold')
- end
- button = TkButton.new(@win1) do
- image1 = TkPhotoImage.new { file "bilder/exit.gif" }
- place 'x' => 212, 'y' => 2
- image image1
- end
- button.bind('ButtonRelease-1') do
- @win1.state = 'withdrawn'
- end
- #Export
- TkLabel.new(@win1) do
- place 'x' => 50, 'y' => 30
- text 'Verwaltung'
- background 'Green Yellow'
- relief 'groove'
- font TkFont.new('Comic 20 bold')
- foreground 'blue'
- end
- TkLabel.new(@win1) do
- place 'x' => 50, 'y' => 102
- text 'Lebensmittel:'
- background 'Brown'
- relief 'groove'
- font TkFont.new('Comic 10 bold')
- foreground 'yellow'
- end
- TkLabel.new(@win1) do
- place 'x' => 50, 'y' => 174
- text 'Anzahl:'
- background 'Brown'
- relief 'groove'
- font TkFont.new('Comic 10 bold')
- foreground 'yellow'
- end
- image1 = TkPhotoImage.new { file "bilder/rein.gif" }
- @bt13 = TkButton.new(@win1) do
- place 'x' => 20, 'y' => 300
- image image1
- end
- @bt13.bind('ButtonRelease-1') do
- @testen1 = 0
- @leb6 = @e2.value
- @leb7 = @e3.value.to_i
- @my_hash.each do |leb, anz|
- if leb == @leb6
- anz = anz + @leb7
- @my_hash[leb] = anz
- liste()
- @testen1 = 1
- @my_hash[leb] = anz
- liste()
- @testen1 = 1
- end
- end
- if @testen1 == 0
- Tk.messageBox(
- 'type' => "ok",
- 'icon' => "warning",
- 'title' => "Nicht vorhanden",
- 'message' => "Das Produkt ist nicht vorhanden"
- )
- delat_lvl()
- end
- File.open("data/leb.txt", "w") {|output|
- output.write(@my_hash.to_yaml)
- }
- end
- image1 = TkPhotoImage.new { file "bilder/raus.gif" }
- @bt14 = TkButton.new(@win1) do
- place 'x' => 130, 'y' => 300
- image image1
- end
- @bt14.bind('ButtonRelease-1') do
- @testen2 = 0
- @leb6 = @e2.value
- @leb7 = @e3.value.to_i
- @my_hash.each do |leb, anz|
- if leb == @leb6
- anz = anz - @leb7
- if anz < 0
- anz = 0
- @my_hash[leb] = anz
- @testen2 = 1
- end
- @my_hash[leb] = anz
- liste()
- @testen2 = 1
- end
- end
- if @testen2 == 0
- Tk.messageBox(
- 'type' => "ok",
- 'icon' => "warning",
- 'title' => "Nicht vorhanden",
- 'message' => "Das Produkt ist nicht vorhanden"
- )
- delat_lvl()
- end
- File.open("data/leb.txt", "w") {|output|
- output.write(@my_hash.to_yaml)
- }
- end
- end
- end
- los = Mama.new
- los.run
Add Comment
Please, Sign In to add comment