Habe folgende Oberfläche aufgebaut:
und möchte je nach dem welche Checkbox gewählt ist das Erzeuge Bild von
anzeigen oder die ausgabe von
anzeigen lassen.
Finde überhaupt nichts im Internet wie ich sowas machen kann
Code:
#!/usr/bin/wish -f
#wm withdraw .
#Hauptfenster nicht änderbar in seiner Größe
wm resizable . 0 0
#Willkommenstext
#toplevel .logo
#Historyfenster
toplevel .th
#Bildfenster
toplevel .pic
wm title . "Perl Ausarbeitung"
#wm title .logo "Willkommen"
wm title .th "History"
wm title .pic "Graphische darstellung"
wm geometry . +100+100
#wm geometry .logo +350+350
wm geometry .th +715+100
wm geometry .pic +100+200
#destroy .pic
#===========Prozeduren===========Start
proc dateidialog {} {
global datei
#Dateitypen festlegen
set filetypes {
{"Alle Dateien" *}
{"Textdateien" {.txt .TXT}}
{"Tcl-Dateien" { .tcl .TCL .tk .TK} }
}
#Öffnendialog
set datei [tk_getOpenFile \
-initialdir [pwd]\
-title "Datei öffnen..."\
-filetypes $filetypes\
-defaultextension .txt\
-parent .]
#In die proc einlesen gehen
einlesen
}
proc einlesen {} {
global datei
global historyvar
#...wenn $datei ungleich leer
if {$datei !=""} then {
#Variable sicherheitshalber leeren
set thefile ""
#Dateigröße bestimmen
set filesize [file size $datei]
#Datei öffnen zum Lesen und Schreiben
set thefile [open $datei "r+"]
#Datei in die Variable "inhalt" mit der Dateigröße einlesen
set inhalt [read $thefile $filesize]
#Inhalt der Variable "inhalt" in die Variable "historyvar" kopieren
set historyvar $inhalt
#Kanal schließen
close $thefile
#Kopf des Hauptfenster ändern
wm title . $datei
}
}
proc speichern_unter {} {
global historyvar
#Speicherndialog
set datei [tk_getSaveFile -title "Speichern unter ..." -parent .]
if { $datei == "" } {
return; #Es wurde Abbruch gedrückt
}
#Datei öffnen zum Schreiben
set x [catch {set fid [open $datei "w+"]}]
#Schreibe in die Datei
set y [catch {puts $fid $historyvar}]
#Kanal schließen
set z [catch {close $fid}]
#Überprüfen ob alles gut ging und die Datei existiert, lesbar und kein Verzeichnis ist
if { $x || $y || $z || ![file exists $datei] || ![file isfile $datei] || ![file readable $datei] } {
tk_messageBox -parent . -icon error -message "Ein error endstand während des speichern in \"$datei\""
} else {
tk_messageBox -parent . -icon info -message "Speichervorgang erfolgreich"
}
}
#===========Prozeduren===========Ende
#===========Logo===========Start
#message .logo.text -text "Willkommen bei mein Programm welches Ihnen erleichtert ..." -aspect 200
#button .logo.btn -text "Ende" -command {exit}
#pack .logo.text .logo.btn
#===========Logo===========Ende
#===========Menüleiste===========Start
pack [frame .mbar -relief groove -bd 3] -side top -expand yes -fill x
pack [menubutton .mbar.datei -text "Datei" -menu .mbar.datei.menu] -side left
menu .mbar.datei.menu
.mbar.datei.menu add command -label "Öffnen" -command {dateidialog}
.mbar.datei.menu add command -label "Speichern unter ..." -command {speichern_unter}
.mbar.datei.menu add command -label "Beenden" -command {exit}
#===========Menüleiste===========Ende
#===========Haupt===========Start
pack [frame .auswahl -relief groove -bd 2] -side left -anchor n
pack [label .auswahl.label -text "Regulärer Ausdruck"] -side left
pack [entry .auswahl.eingabe -width 50 -textvariable eingabevar] -side left
pack [checkbutton .auswahl.cb1 -text "Grafisch" -variable grafikvar] -side left
pack [checkbutton .auswahl.cb2 -text "Textuel" -variable textvar] -side left
pack [button .auswahl.los -text "LOS" -padx 20 -command {
global eingabevar
global grafikvar
global textvar
#... wenn Eingabefeld nicht leer ist, d.h. mindestens 1 Zeichen enthält
if { [string length $eingabevar] > 0 && [.th.historylist get end] != $eingabevar } {
.th.historylist insert end $eingabevar
if { $grafikvar == 1 } {
set labelbild [pwd]/Images/welle.pgm
set foto [image create photo -file $labelbild]
label .pic.l -image $foto
pack .pic.l
}
if { $textvar == 1 } {
}
}
}] -side left
#===========Haupt===========Ende
#===========History===========Start
pack [label .th.lhistory2 -text "Ihre Aktion:"] -side top
pack [frame .th.aktion -relief groove -bd 2] -side top -anchor n
pack [button .th.aktion.bladen -text "In Eingabe laden" -padx 20 -command {
.auswahl.eingabe delete 0 end
.auswahl.eingabe insert 0 "[.th.historylist get active]"
}] -side left
pack [button .th.aktion.bloeschen -text "Aus der History löschen" -padx 20 -command {
.th.historylist delete [.th.historylist index active]
}] -side left
pack[listbox .th.historylist -width 50 -height 20 -listvariable historyvar] -side bottom
.th.historylist insert end {/^a(b|z$)/} {/^(a|b)(c|d)$/} {/^(a(b|c)|def)$/}
focus .th.historylist
#===========History===========Ende
update
focus -force .auswahl.eingabe
Code:
perl re_graph.pl -o test.png '^([A-Za-z]*?)\s*([A-Za-z]*?)\s*(\d*?)\s*(\d*?):(\d*?):(\d*)\s*(\d*)$'
Code:
#!/usr/bin/perl -w
use YAPE::Regex::Explain;
use strict;
my $re = '^([A-Za-z]*?)\s*([A-Za-z]*?)\s*(\d*?)\s*(\d*?):(\d*?):(\d*)\s*(\d*)$ ';
my $parser = YAPE::Regex::Explain->new($re);
print $parser->explain;
Finde überhaupt nichts im Internet wie ich sowas machen kann