• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

KDialog

A

Anonymous

Gast
Hallo,

ich möchte ein bestehendes Script /home/test.sh in ein KMenü einbauen.
Im KMenü soll ein Auswahlbutton ausgewählt werden und beim drücken der Start Taste soll das Script ausgeführt werden.

Wer kenn mir evtl. mit einem Code oder Web-Seiten weiterhelfen?
 

lOtz1009

Moderator
Teammitglied
Kann man bei KDE nicht auch per Rechtsklick auf das Menü eben dieses bearbeiten und einen neuen Eintrag hinzufügen?
 
Man kann. :)

/home/ halte ich allerdings nicht für den idealen Ort für ein solches Skript (vermutlich ist hier aber ~ (/home/$username) gemeint).
 
OP
A

Anonymous

Gast
Hallo,

ich meine nicht das KMenü sondern den KDialog

http://wiki.ubuntuusers.de/kdialog

Wie lautet der Code zum Ausführen des Scriptes innerhalb des KDialogs?

Auf welchen Seite wird das erklärt ( nicht nur Ok und Abbrechen Buttons ).
 
Guckstu:

"test1.sh":
Code:
#!/bin/bash

echo "Hallo"
"test2.sh":
Code:
#!/bin/bash

echo "Welt"
"kdchoose.sh":
Code:
#!/bin/bash

kdialog --radiolist "Script to choose" \
                    "test1.sh" "First Script" off \
                    "test2.sh" "Second Script" on 1>./tmpout 2>/dev/null

command=$(cat ./tmpout)
rm ./tmpout
$command
Ich würd's ja lieber in Python/Tkinter machen, da das flexibler wäre, aber das hier verstehst Du vielleicht schneller.

Gruß
 
Ich hab kdialog schon ab und an in meinen Scripten im Eimsatz. Schau dir zum Beispiel jenes hier an:

http://www.linupedia.org/opensuse/Dvb_wiki_script/Script

Die genaue Erklärung dazu hab ich hier:

http://www.linupedia.org/opensuse/Dvb_wiki_script/Programmieranleitung

Such dir einfach die Zeilen mit kdialog raus, vielleicht hilft es. Ansonst kann ich dir noch den Link zur Doku von kdialog geben:

http://techbase.kde.org/index.php?title=Development/Tutorials/Shell_Scripting_with_KDE_Dialogs_%28de%29

Edgar
 
OP
A

Anonymous

Gast
Hallo,

vielen Dank an ALLE. Werde jetzt mal alles probieren.
 
OP
A

Anonymous

Gast
Hallo,

ich brauche leider noch etwas "Anschubhilfe".
Mein KDialog sieht bisher so aus:

Code:
#!/bin/bash
kdialog --radiolist "Zeile 1.\n Zeile 2" \
                    "acroread" "Adobe" off \
                    "test1.sh" "3 Programm" off \
                    "test1.sh" "4 Programm" off \
                    "test1.sh" "5 Programm" off \
                    "test1.sh" "6 Programm" off \
                    "test2.sh" "7 Programm" on 1>./tmpout 2>/dev/null

command=$(cat ./tmpout)
rm ./tmpout
$command

http://img225.imageshack.us/i/bild1i.png/

Das Programm "Adobe" bekomme ich gestartet ( ohne Hilfe).

Ich habe dazu noch folgende Fragen:

1.) kdialog --radiolist "Zeile 1.\n Zeile 2" \
Wie bekomme ich ein Symbol vor den Text und wie breche ich den Text um?

2.) Für ein KDE Servicemenüeintrag habe ich folgendes Script geschrieben.

Code:
cd "%d";pdftk %u cat `kdialog --title "Seiten extrahieren" --inputbox Seiten "1-2"` output PDF_extrahiert.pdf;kdialog --title "PDF extrahieren" --msgbox "Das extrahieren der Pdf-Dateien wurde erfolgreich beendet!"
Ich wähle eine *.Pdf Datei mit der rechten Maustaste aus, es öffnet sich der KDialog mit der Frage, welche Seiten
extrahiert werden sollen. Mit dem Programm pdftk werden die zuvor gewählten Seiten herausgetrennet. Anschließend kommt der KDialog Hinweis "Das extrahieren der Pdf-Dateien wurde erfolgreich beendet!"

Wie bekomme ich es hin, das anstatt der Markierung mit der rechten Maustaste (KDE-Servicemenü) sich hier im KDialog
das Dateiauswahlfennster zur Auswahl der entsprechenden *.pdf Datei öffnet.?
 
Oder Xdialog?

http://xdialog.free.fr/

Beispiel aus der Doku:
Code:
#!/bin/sh

FILE=`Xdialog --stdout --title "Please choose a file" --fselect /home 0 0`

case $? in
	0)
		echo "\"$FILE\" chosen";;
	1)
		echo "Cancel pressed.";;
	255)
		echo "Box closed.";;
esac
Auch neckische Bildchen:
It is now possible to display an icon on the left of the text in most boxes.
;)
 
OP
A

Anonymous

Gast
Hallo,

da in meiner Firma nur KDialog läuft, möchte ich dabei bleiben.

Zur Zeit stehe etwas auf dem Schlauch.

Wenn ich in der Kosole "acroread" eingebe,
Code:
mustermann@lxmustermann:~> acroread
startet der Adobe Reader wie gewünscht.

Das "Icon" für den Adobe auf meinem Desktop hat folgenden Eintrag

Code:
#!/usr/bin/env xdg-open
[Desktop Entry]
Name=Adobe Reader 9
MimeType=application/pdf;application/vnd.fdf;application/vnd.adobe.pdx;application/vnd.adobe.xdp+xml;application/vnd.adobe.xfdf;
Exec=/opt/Adobe/Reader9/bin/acroread 
Type=Application
GenericName=PDF Viewer
Terminal=false
Icon=AdobeReader9
Caption=PDF Viewer
X-KDE-StartupNotify=false
Categories=Application;Office;Viewer;X-Red-Hat-Base;
InitialPreference=9

Wenn ich im Script für den KDialog den Befehl eingebe und das Script starte, passiert nichts.

Code:
kdialog --radiolist   "Zeile 1.<br> Zeile 2  <br>" \
                    "acroread" "Adobe" off \

Wo liegt der Denkfehler?

Wie spreche ich im Script für den KDialog den Ordner

Code:
/vhome/mustermann/.kde4/share/kde4/services/ServiceMenus/bin
an?
 
Code:
Exec=/opt/Adobe/Reader9/bin/acroread

Das ist doch vermutlich der falsche Pfad, oder? Überprüfe das mal mit

Code:
which acroread
 
Hannes_1 schrieb:
Wenn ich im Script für den KDialog den Befehl eingebe und das Script starte, passiert nichts.

Code:
kdialog --radiolist   "Zeile 1.<br> Zeile 2  <br>" \
                    "acroread" "Adobe" off \

Wo liegt der Denkfehler?
Nun, KDialog ist nicht Kommander: Es gibt nur eine Information zurück. Das Programm mit dieser Information starten, mußt Du selbst (ist etwas umständlich, mit einer temporären Datei: Siehe mein Posting oben).

Gruß
 
OP
A

Anonymous

Gast
Hallo,

ich bekomme es einfach nicht hin.
Meine Bitte.

An Hand der beiden Programme

a) Acroread
which acroread = /usr/bin/acroread

b) Kate
which Kate = /usr/bin/kate

bitte den VOLLSTÄNDIGEN CODE in das beiugefügte Gerüst eintragen. Die anderen Programme bekomme ich dan selbst hin.
Bin KEIN Programierer.

Code:
kdialog --radiolist "Bitte wählen Sie hier das<br>zu startende Programm aus!"<br>" \
                    "/usr/bin/acroread" "Adobe Reader" off \                     
                    "/usr/bin/kate" "Kate" on 1>./tmpout 2>/dev/null

command=$(cat ./tmpout)
rm ./tmpout
$command
                     "xxx.sh" "Programm1" off \
                     "xxx.sh" "Programm2" off \
                     "xxx.sh" "Programm3" off \
 
Hannes_1 schrieb:
Bin KEIN Programierer.
Was nicht ist, kann ja noch werden. ;)

Bei mir läuft's so:
Code:
#!/bin/bash

myacroread=$(which acroread)
mykate=$(which kate)

kdialog --radiolist "Bitte wählen Sie hier das zu startende Programm aus!" \
"$myacroread" "Adobe Reader" off \
"$mykate" "Kate" on 1>./tmpout 2>/dev/null

command=$(cat ./tmpout)
rm ./tmpout
$command
Wenn nicht, versuch' die kdialog-Zeile mal in nur einer Zeile:
Code:
#!/bin/bash

myacroread=$(which acroread)
mykate=$(which kate)

kdialog --radiolist "Bitte wählen Sie hier das zu startende Programm aus!" "$myacroread" "Adobe Reader" off "$mykate" "Kate" on 1>./tmpout 2>/dev/null

command=$(cat ./tmpout)
rm ./tmpout
$command
Gruß
 
OP
A

Anonymous

Gast
Hallo,

vieeeeeeeeeeeeeeeeeelen DANK an ALLE.
Jetzt hab ich's kapiert.

Läuft auch mit anderen Programmen einwandfrei!
 
Oben