Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: GTKdialog  (Přečteno 1369 krát)

Kedrigern

GTKdialog
« kdy: 28 Srpna 2010, 10:57:06 »
Píšu jednoduchý skript. Vše funguje jak má. Chtěl jsem mu přidat trochu grafických okének. Zvolil jsem GTK, většinu jsem udělal přes Zenity. Nicméně Zenity neumí víceřádkový vstup. To jsem vyřešil pomocí GTKdialogu (Ofic. str., příklady) , takto:

Kód: [Vybrat]
#! /bin/bash

export MAIN_DIALOG='
<window title="my gtkdialog window">
<vbox>
    <edit>
      <variable>EDITOR</variable>
      <width>350</width><height>150</height>
      <default>
"Zde je defaultní,
velmi často víceřádkový,
 text."
      </default>
    </edit>
    <hbox>
      <button ok></button>
    </hbox>
</vbox>
</window>'

gtkdialog --program=MAIN_DIALOG

Když si to vyzkoušíte, tak zjistíte, že to udělá hezké okénko. Přesně takové, jaké jsem chtěl. A vrátí to takovouto hodnotu (odkliknuto s def. textem), čili stdout:
Kód: [Vybrat]
EDITOR="Zde je defaultní,
velmi často víceřádkový,
 text."
EXIT="OK"

Čili mi vrátí "deklaraci" dvou proměnných. Problém je, že je to text, nikoliv příkazy. Mně by se líbilo, kdybych dané výstupy měl opravdu v těch proměnných. Abych pak mohl udělat:

Kód: [Vybrat]
#: echo $EDITOR
Zde je defaultní,
velmi často víceřádkový,
 text.

A nevím jak to udělat přímo. Samozřejmě bych to mohl parsovat sedem, grepem, tr a tak. Nicméně to vždy bude drhnout a bude to takové zbytečně velké, ale jak to udělat rovnou?
Spustit nějaký subshell či tak?
Tuší někdo?

Je mi divné, že by to vracelo v takovémto formátu a jednoduše to nešlo využít.

fish

  • Aktivní člen
  • *
  • Příspěvků: 307
Re: GTKdialog
« Odpověď #1 kdy: 13 Září 2010, 18:20:44 »
Vyrábal som script na ovládanie mplayera ako TV prehrávača.
Kód: [Vybrat]
    <button>
      <label>STV1</label>
      <action>__gtv_event STV1</action>
      <action>refresh:TV_DISP</action>
    </button>

Klik na button vyvolal akciu. Zavolal script __gtv_event s názvom stanice. Cez fifo dal mplayeru frekvenciu TV stanice. Druhá akcia bola refresh názvu stanice.
Akciu som vyvolal aj pre table (ladenie rádií FM v mplayer).
Script pre gtkdialog a script pre spracovanie akcií mám v $HOME/bin

Premenné sa dajú odovzdať ako parametre alebo cez export premennej. Z podriadeného shellu som vracal hodnotu cez súbor.

Teraz mám Ubuntu 10.04, nenašiel som gtkdialog v repozitári - píšu že je to zastaralý balík bez údržby a  dokumentácie. To je škoda, nenašiel som náhradu.
Script som písal pre Ubuntu 8.04, ak máš konkrétne otázky skúsim si spomenúť.
Acer Aspire 5738ZG/Intel T4400/ATI MR HD 4650/4GB RAM :: Ubuntu 10.04 64bit/Kbuntu 10.10 64bit/Win7 HP 64bit

MacHala

  • Stálý člen
  • **
  • Příspěvků: 1104
  • Big Bro iz watching joo!
    • ZlejT
Re: GTKdialog
« Odpověď #2 kdy: 18 Září 2010, 15:54:32 »
...
nahodou procitam starsi zapisy v kategorii a najednou me napadlo reseni - staci pouzit eval
Prislusnik ligy, za kreativni pouzivani interpunkcnich znamenek, carek, predevsim.
=======================================
Tweetuju jako http://twitter.com/zl8

 

Provoz zaštiťuje spolek OpenAlt.