GUI unter Linux

T

tw-elektric

Eroberer
Hallo,

ich trete im Moment in totales Neuland. Eig. habe ich immer kleine Tools in VB.Net oder in Shell-Scripte gemacht. Nun brauche ich ein Shell-Script mit einer GUI. Ich möchte das der Anwender verschieden Textfelder, DropDown, Buttons und ChoiceFelder zur Auswahl in der GUI hat. Je nach dem was ausgewählt wird, soll sozusagen die Auswahl in eine Textdatei gespeichert werden, und beim erneuten öffnen, falls vorhanden geladen werden.

Nun kenne ich mich nicht sonderlich mit Perl oder Java aus. Habe mir gerade Eclipse etwas angeschaut, hier fehlen mir die verschieden Form für die GUI. Evtl. nur ein Konfigurationsfehler von meiner Seite.

Wie würdet ihr so eine Anwendung/Script mit GUI erstellen? Ich hoffe ich bekomme ein paar kleine Tipps von euch.

Danke

Gruß
ottscho
 
Für einfache Sachen gibt es die schon erwähnten dialog und xdialog, sowie kdialog und gdialog (für kde und gnome) sowie, wenn es anspruchsvoller sein soll, kommander (im Moment nur für kde3). Da steht jedoch die GUI im Mittelpunkt und nicht das Skript. Kommt dann auf deinen Schwerpunkt an.

cu
 
Nun kenne ich mich nicht sonderlich mit Perl oder Java aus. Habe mir gerade Eclipse etwas angeschaut, hier fehlen mir die verschieden Form für die GUI. Evtl. nur ein Konfigurationsfehler von meiner Seite

Nein, hast alles richtig gemacht. Eclipse hat von Hause aus erst keinen GUI-Builder. Es gibt da wohl ein PlugIn, find eich aber nicht so prikelnd.
Wenn Du unbedingt Eclipse nutzen willst, wirst Du wohl nicht drum herum kommen, die GUI richtig zu schreiben.
Willst Du dich erst mal einarbeiten, und schauen, wie das funktioniert, empfehle ich dir Netbeans. Netbenas ist eine IDE für verschiedene Sprachen (PHP, Ruby, C++,…), hauptsächlich für Java. Das schöne ist, dass Netbeans direkt einen GUI-Builder integriert hat.
Andere Möglichkeit wäre MonoDevelop mit GTK (braucht man das Mono-Framework für).
Oder Qt für C++.
 
Mono gefällt mir eig. ganz gut. Aber die letzten Tests mit Mono und VB.Net sind in die Hose gegangen.

Habe mir eben dialog angeschaut, unter Ubuntu gibts das nicht. heißt hier wohl Zenity.

Habe hier mal ein kleines Tutorial gefunden. Sagt mir eig. ganz gut zu.

http://www.cargal.org/drupal/node.php?id=239

ich brauche ja nicht wirkliche viele forms, textbox, was ich ja jetzt schon habe in dem tutorial, dann eine auswahlbox mit mehreren options und was schön wäre, wäre ein dropdown menue.

leider fehler mir die tutorials, openbooks etc. zu dialog bzw. zenity.
ich hoffe ihr habt mir hier ein paar wissenwerte links.

danke
gruß
twe
 
Zenity.

Damit kann man sehr gut GUI's für Shellskripte machen :) Arbeite selber damit.

hast du mir evtl. ein paar scriptbeispiele oder tutorial, howtows?
dies habe ich noch gefunden:
http://www.mandrivauser.de/viewtopic.php?id=7987

hier wird gezeigt wie eine auswahlbox geht.
nun benötige ich nur noch optionforms und muss wissen, wie och bestimme, dass bestimmte textinhalte in textfeldern schon default stehen, oder felder schon default ausgewählt wurden.
 
hast du mir evtl. ein paar scriptbeispiele oder tutorial, howtows?
dies habe ich noch gefunden:
http://www.mandrivauser.de/viewtopic.php?id=7987

hier wird gezeigt wie eine auswahlbox geht.
nun benötige ich nur noch optionforms und muss wissen, wie och bestimme, dass bestimmte textinhalte in textfeldern schon default stehen, oder felder schon default ausgewählt wurden.

http://www.unixboard.de/vb3/showthread.php?t=35819&highlight=remastered

Da z.b :) Ist aber ein altes "SEM" von mir... Die "final" ist leider verloren gegangen als ich ein platten crash hatte.

Dann hier z.b für mein openbox:

Code:
#!/bin/sh
RUN=$(zenity --entry --text "Bitte Befehl eingeben")
exec $RUN
Das zeigt mir ein fenster wo ich ein befehl eingeben kann. Dieser wird dann ausgeführt :)

Dann hab ich noch was damit ich schnell dateien entpacken kann >
Code:
#!/bin/sh
FILE=`zenity --file-selection --text "Bitte wählen sie die Datei aus die sie entpacken möchten"`
if [ -z "$FILE" ];then
exit
else
unp $FILE | zenity --progress --pulsate
fi
 
danke, das sind sehr hilfreiche links :)

jetzt habe ich nur noch ein shell problem. ist nutze nicht die bash sondern die csh/tcsh.

ich komme hier einfach nicht drauf:
bash:
Code:
strLftNr = $(zenity --entry --title="2D Barcode PRINTAR" --text="Geben Sie bitte die LfkNummer an:")

aber wie muss es bei der csh aussehen?
ich fülle eine variabe mit set:
Code:
set strLftNr = `zenity --entry --title="2D Barcode PRINTAR" --text="Geben Sie bitte die LfkNummer an:"`

so geht es leider nicht!

danke
 
Zuletzt bearbeitet:
gut, ich schummel gerade weng, da ich nicht weiß, wie ich es anderst in eine variable bekomme. nun mache ich es so:

Code:
#!/bin/tcsh
set echo


#Laufkartennummer erfassen
zenity --entry --title="2D Barcode PRINTAR" --text="Geben Sie bitte die LfkNummer an:" --entry-text="" >> /tmp/lftnr
set strLftNr = `tail -l /tmp/lftnr`
rm -f /tmp/lftnr

#Index Wert erfassen
zenity --entry --title="2D Barcode PRINTAR" --text="Geben Sie bitte einen Index Wert an:" --entry-text="") >> /tmp/index
set strIndex = `tail -l /tmp/index`
rm -f /tmp/index

Wenn mir jdm sagt, wie ich es ohne diesen "um"weg hinbekomme, ist mir auch recht :D
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

hat mir evtl. noch jmd einen tipp, wie ich beim listenmenue / radiolist ein default wert setzten kann?

Code:
#!/bin/tcsh
set echo

#Laufkartennummer festlegen
zenity --entry --title="2D Barcode PRINTAR" --text="Geben Sie bitte die LfkNummer an:" --entry-text="" >> /tmp/lftnr
set strLftNr = `tail -l /tmp/lftnr`
rm -f /tmp/lftnr
echo "####"$strLftNr"####"


#Index Wert festlegen
zenity --entry --title="2D Barcode PRINTAR" --text="Geben Sie bitte einen Index Wert an:" --entry-text="" >> /tmp/index
set strIndex = `tail -l /tmp/index`
rm -f /tmp/index
echo "####"$strIndex"####"

#Lagenbezeichnung festlegen
zenity --list --radiolist --width=400 --height=150 --title "2D Barcode PRINTAR" --text "Wählen Sie bitte die Lagenkennzeichnung aus:" --column=" " --column Variable --column Beschreibung \
"\" TWE			"Bauteilseite = B / Lötseite = L" \
"\" PHG			"Bauteilseite = LCS / Lötseite = LBS" \
>> /tmp/date
set strLage = `tail -l /tmp/lage`
rm -f /tmp/lage
echo "####"$strLage"####"

#Datumsforamt festlegen
zenity --list --radiolist --width=400 --height=200 --title "2D Barcode PRINTAR" --text "Wählen Sie bitte das Datumformat aus:" --column=" " --column Variable --column Beschreibung \
"\" %W%y			"Kalenderwoche / Jahr 2-stellig" \
"\" %W%Y			"Kalenderwoche / Jahr 4-stellig" \
"\" %x				"Monat/Tag/Jahr 2-stellig" \
>> /tmp/date
set strDate = `tail -l /tmp/date`
rm -f /tmp/date
echo "####"$strDate"####"

#Reihefolge festlegen
zenity --list --radiolist --width=400 --height=325 --title "2D Barcode PRINTAR" --text "Wählen Sie bitte die Reihenfolge aus:" --column=" " --column Variable --column Beschreibung \
"\" ULC_RIGHT			"LinksOben->RechtsUnten - Horizontal" \
"\" ULC_DOWN			"LinksOben->RechtsUnten - Vertiakl" \
"\" DLC_RIGHT			"LinksUnten->RechtsOben - Horizontal" \
"\" DLC_UP			"LinksUnten->RechtsOben - Vertiakl" \
"\" DRC_LEFT			"RechtsUnten->LinksOben - Horizontal" \
"\" DRC_UP			"RechtsUnten->LinksOben - Vertiakl" \
"\" URC_LEFT			"RechtsOpen->LinksUnten - Horizontal" \
"\" URC_DOWN			"RechtsOebn->LinksUnten - Vertiakl" \
>> /tmp/counter
set strCounter = `tail -l /tmp/counter`
rm -f /tmp/counter
echo "####"$strCounter"####"
 
Zuletzt bearbeitet:
es gibt von vb kostenlose linux portierungen wi kbasic aber ich weis nicht inwiefern die zu vb.net kompatibel sind
 
Zurück
Oben