RubyGTK TreeView e bottoni nelle celle


#1

Ciao

Sto sviluppando un piccolo gestionale per un negozio e sto creando parte
dell’interfaccia con le GTK.

Devo inserire bottoni all’interno di una cella di un oggetto Treeview.
Ho trovato solamente questi tipi di renderer:

Gtk::CellRendererAccel - Renders a keyboard accelerator in a cell
Gtk::CellRendererCombo - Renders a combobox in a cell
Gtk::CellRendererPixbuf - Renders a pixbuf in a cell
Gtk::CellRendererProgress - Renders numbers as progress bars
Gtk::CellRendererSpin - Renders a spin button in a cell
Gtk::CellRendererText - Renders text in a cell
Gtk::CellRendererToggle - Renders a toggle button in a cell

Ma per inserire un bottone non c’è niente?

Grazie

Michele


#2

On 2/27/07, Michele F. removed_email_address@domain.invalid wrote:

Ciao

Sto sviluppando un piccolo gestionale per un negozio e sto creando parte
dell’interfaccia con le GTK.

Un consiglio: se ci riesci, forse emeglio un sito web che vedono solo loro. Ho fatto in passato anche io un 'piccolo gestionale per un negozio', e anche se Tcl e Tk sono stupendi per fare interfacce, mi sono un po' pentito, e alla fine ho rifatto tutto in Rails. Non perche il programma non andava, ma percheposso aggiornare tutto da casa, e perche risolve diversi altri problemi (come gestire
modifiche, come distribuire la cosa…ecc…).


David N. Welton

Linux, Open Source Consulting


#3

David W. wrote:

On 2/27/07, Michele F. removed_email_address@domain.invalid wrote:

Ciao

Sto sviluppando un piccolo gestionale per un negozio e sto creando parte
dell’interfaccia con le GTK.

Un consiglio: se ci riesci, forse emeglio un sito web che vedono solo loro. Ho fatto in passato anche io un 'piccolo gestionale per un negozio', e anche se Tcl e Tk sono stupendi per fare interfacce, mi sono un po' pentito, e alla fine ho rifatto tutto in Rails. Non perche il programma non andava, ma percheposso aggiornare tutto da casa, e perche risolve diversi altri problemi (come gestire
modifiche, come distribuire la cosa…ecc…).

Si tratta di un progetto semi-amatoriale per il negozi di mia madre
quindi non ho particolari problemi nella manutenzione.

Anche io ho pensato a Rails ma solo per l’intero backend che gestisce
tutto il database. Al momento dell’acquisto volevo fornire al commesso
un’interfaccia più reattiva e potente e quindi ho pensato a GTK con una
finestra fullscreen con schermo LCD touch screen (effetto chiosco).

ciao

Michele


#4

Michele F. wrote:

Si tratta di un progetto semi-amatoriale per il negozi di mia madre
quindi non ho particolari problemi nella manutenzione.

Sto sviluppando anche io un progetto semi-amatoriale per il negozio
della madre della mia ragazza. Ho utilizzato ActiveRecord per
interfacciami con il DB (sqlite) e le GTK per le GUI.
Leggendo in giro ho letto che le GTK per Ruby, sono la libreria
piu’ completa esistente per questo linguaggio in agigunta
e’ stata portata su Windows, dove la mia applicazione gira.

Purtroppo ho guardato con attenzione la documentazione dell’API e
un Renderer con un bottone non mi sembra di averlo visto, di preciso
cosa deve fare questo bottone? Non puoi mettere un bottone unico fuori
dalla tabella e attivarlo se se solo se ci sono una o piu’ righe
selezionate nella tabella?

Un mio dubbio, hai mai avuto problemi con TreeView con molte righe,
parlo di qualche migliaio? Per velocizzare il tutto mi sarebbe piaciuto
implementare un mio ListStore che utilizzasse direttamente l’array di
oggetti ActiveRecord::Base estratti dal DB: dal momento che ho gia’ una
lista non ha senso che la converti un un ListStore, ma potrei fare un
mio ListStore che sfrutti internamente questa lista. Il mio problema e’
che ho provato ad estendere una ListStore e ha ridefinire tutti i suoi
metodi ma non funziona. Il problema secondo me risiede nella
documentazione dell’API che non ti permette di capire con esattezza cosa
c’e’ da ridefinire. Ho provato anche a chiedere sulla ML di ruby-gnome2,
ma nessuno a risposto.

ciao!

Gendag


#5

On 2/28/07, Michele F. removed_email_address@domain.invalid wrote:

Anche io ho pensato a Rails ma solo per l’intero backend che gestisce
tutto il database. Al momento dell’acquisto volevo fornire al commesso
un’interfaccia più reattiva e potente e quindi ho pensato a GTK con una
finestra fullscreen con schermo LCD touch screen (effetto chiosco).

C’è anche la soluzione XUL: applicazione Rails, interfaccia nativa.


Massimiliano M.
code: http://dev.hyperstruct.net
blog: http://blog.hyperstruct.net


#6

Massimiliano M. wrote:

On 2/28/07, Michele F. removed_email_address@domain.invalid wrote:

Anche io ho pensato a Rails ma solo per l’intero backend che gestisce
tutto il database. Al momento dell’acquisto volevo fornire al commesso
un’interfaccia pi� reattiva e potente e quindi ho pensato a GTK con una
finestra fullscreen con schermo LCD touch screen (effetto chiosco).

C’� anche la soluzione XUL: applicazione Rails, interfaccia nativa.


Massimiliano M.
code: http://dev.hyperstruct.net
blog: http://blog.hyperstruct.net

Non credo che cambierebbe molto dall’utilizzare XHTML e poi mi perderei
completamente la compatibilità con gli altri browser. Metti che devo
connettermi al gestionale da remoto, devo avere per forza Firefox.

ciao

Michele


#7

Andrea F. wrote:

Sto sviluppando anche io un progetto semi-amatoriale per il negozio
della madre della mia ragazza. Ho utilizzato ActiveRecord per
interfacciami con il DB (sqlite) e le GTK per le GUI.
Leggendo in giro ho letto che le GTK per Ruby, sono la libreria
piu’ completa esistente per questo linguaggio in agigunta
e’ stata portata su Windows, dove la mia applicazione gira.

Devo dare modo di poter aumentare e diminuire le quantità acquistate o
di rimuovere il prodotto come si fa per un carrello della spesa da web.

Una riga rappresenta un prodotto e un campo quantità mi da la visibilitÃ
di quanti vengono acquistati.

Per eliminare il prodotto avrei trovato anche la soluzione di
intercettare il tasto CANC quando c’è una riga selezionata ma per le
quantità è ancora un mistero. Ho pensato anche a delle Pixmap
intercettando il click del mouse sopra di esse ma non esistono segnali
per gli oggetti Pixmap.

In realtà basterebbe che ci fosse un renderer che permetta di disegnare
un contenitore generico nel quale potrei inserire un HBox e all’interno
dei bottoni.

Per quanto riguarda le righe della treeview io ne avrò al massimo poche
decine quindi non credo ci saranno problemi.

ciao

Michele


#8

Michele F. wrote:

Per eliminare il prodotto avrei trovato anche la soluzione di
intercettare il tasto CANC quando c’è una riga selezionata
Si, anche io avevo lo stesso problema, ho risolto mettendo un pulsante
fuori dalla tabella, che mi cancella tutte le righe selezionate e ho
anche aggiunto un popum-menu attivabile con il tasto destro del mouse
che permette di cancellare la riga selezionata

ma per le
quantità è ancora un mistero. Ho pensato anche a delle Pixmap
intercettando il click del mouse sopra di esse ma non esistono segnali
per gli oggetti Pixmap.

E un CellREndererText ediatbile, in modo tale che il valore possa essere
inserito a mano. So che le due freccette che aumentano e diminuiscono un
valore sarebbero meglio, ma non so se sia possibile farlo dentro una
tabella.

Comunque dai un occhio a questo
sito:http://www.kksou.com/php-gtk2/index.php

E’ un “cookbook” per l’utilizzo delle GTK in PHP, nonostante cio’ le
soluzioni sono applicabili anche a Ruby, alcune “ricette” mi sono state
molto utili.

In realtà basterebbe che ci fosse un renderer che permetta di disegnare
un contenitore generico nel quale potrei inserire un HBox e all’interno
dei bottoni.

Non credo che esista, lo puoi sempre implementare tu :slight_smile:

Per quanto riguarda le righe della treeview io ne avrò al massimo poche
decine quindi non credo ci saranno problemi.

no, no ncredo che ne avrai :slight_smile:

ciao!
Gendag


#9

On 3/1/07, Michele F. removed_email_address@domain.invalid wrote:

Massimiliano M. wrote:

On 2/28/07, Michele F. removed_email_address@domain.invalid wrote:

Anche io ho pensato a Rails ma solo per l’intero backend che gestisce
tutto il database. Al momento dell’acquisto volevo fornire al commesso
un’interfaccia pi� reattiva e potente e quindi ho pensato a GTK con una
finestra fullscreen con schermo LCD touch screen (effetto chiosco).

C’� anche la soluzione XUL: applicazione Rails, interfaccia nativa.
Non credo che cambierebbe molto dall’utilizzare XHTML

Ti darebbe un’interfaccia reattiva e potente come GTK che (se leggo
bene) è la ragione per cui l’hai preferito a XHTML.

e poi mi perderei completamente la compatibilità con gli altri browser.

Con GTK non la perdi con tutti i browser?

Metti che devo connettermi al gestionale da remoto, devo avere per forza Firefox.

Poterlo fare con Firefox rispetto al non poterlo fare affatto è
comunque un miglioramento.

Ad ogni modo, si può fare anche da IE:

http://starkravingfinkle.org/blog/2006/12/xule-what-if/
http://starkravingfinkle.org/blog/2007/01/mozilla-activex-control/


#10

Michele F. wrote:

Ho una certa esperienza sul web e volevo riproporre
la stessa cosa sulle GTK :frowning:
Idem, e’ la stessa cosa che inizilmente avevo pensato io, ma poi ho
cabbandonato l’idea.

Ho messo dei pulsanti esterni e intercetto il click su ogni riga facendo
comparire una finestra di dialogo che permette di editare la quantitÃ
acquistata.

Si, mi sembra l’unica idea se vuoi inserire i pulsanti “+” e “-” per
aumentare e diminuire una quantita’, altrimenti potresti direttamente
rendere editabili i CellRenderer e permettere di modificare i dati
direttamente dalla tabella, senza la necessita di un form esterno.

ciao!

Gendag


#11

Ciao, io sono un nuovo utente del Forum e scusatemi se mi intrometto
così bruscamente.
Volevo solo chiederti un favore se possibile.
Io sto utilizzando per la prima volta Ruby/Gtk e sono davanti ad un
problema. Io dovrei creare una rubrica telefonica e quindi utilizzare
un database.
Mi indicheresti con qualche esempio come hai fatto Tu per il Tuo
gestionale?
Ti ringrazio molto.

Michele F. wrote:

Ciao

Sto sviluppando un piccolo gestionale per un negozio e sto creando parte
dell’interfaccia con le GTK.

Devo inserire bottoni all’interno di una cella di un oggetto Treeview.
Ho trovato solamente questi tipi di renderer:

Gtk::CellRendererAccel - Renders a keyboard accelerator in a cell
Gtk::CellRendererCombo - Renders a combobox in a cell
Gtk::CellRendererPixbuf - Renders a pixbuf in a cell
Gtk::CellRendererProgress - Renders numbers as progress bars
Gtk::CellRendererSpin - Renders a spin button in a cell
Gtk::CellRendererText - Renders text in a cell
Gtk::CellRendererToggle - Renders a toggle button in a cell

Ma per inserire un bottone non c’è niente?

Grazie

Michele


#12

Ho abbandonato l’idea di mettere bottoni dentro la treeview
anche perché non avrebbero senso.

Ho una certa esperienza sul web e volevo riproporre
la stessa cosa sulle GTK :frowning:

Ho messo dei pulsanti esterni e intercetto il click su ogni riga facendo
comparire una finestra di dialogo che permette di editare la quantitÃ
acquistata.

ciao

Michele F.
michele DOT ferretti AT gmail DOT com

Andrea F. wrote:

Michele F. wrote:

Per eliminare il prodotto avrei trovato anche la soluzione di
intercettare il tasto CANC quando c’è una riga selezionata
Si, anche io avevo lo stesso problema, ho risolto mettendo un pulsante
fuori dalla tabella, che mi cancella tutte le righe selezionate e ho
anche aggiunto un popum-menu attivabile con il tasto destro del mouse
che permette di cancellare la riga selezionata

ma per le
quantità è ancora un mistero. Ho pensato anche a delle Pixmap
intercettando il click del mouse sopra di esse ma non esistono segnali
per gli oggetti Pixmap.

E un CellREndererText ediatbile, in modo tale che il valore possa essere
inserito a mano. So che le due freccette che aumentano e diminuiscono un
valore sarebbero meglio, ma non so se sia possibile farlo dentro una
tabella.

Comunque dai un occhio a questo
sito:http://www.kksou.com/php-gtk2/index.php

E’ un “cookbook” per l’utilizzo delle GTK in PHP, nonostante cio’ le
soluzioni sono applicabili anche a Ruby, alcune “ricette” mi sono state
molto utili.

In realtà basterebbe che ci fosse un renderer che permetta di disegnare
un contenitore generico nel quale potrei inserire un HBox e all’interno
dei bottoni.

Non credo che esista, lo puoi sempre implementare tu :slight_smile:

Per quanto riguarda le righe della treeview io ne avrò al massimo poche
decine quindi non credo ci saranno problemi.

no, no ncredo che ne avrai :slight_smile:

ciao!
Gendag


#13

Salve, scusami ma volevo chiederti un favore, potresti indicarmi come
hai fatto a visualizzare(nel TreeView), magari se puoi inviarmi il
codice, il risultato del resultset dato da una interrogazione al
DataBase?
Ti ringrazio

Michele F. wrote:

Ciao

Sto sviluppando un piccolo gestionale per un negozio e sto creando parte
dell’interfaccia con le GTK.

Devo inserire bottoni all’interno di una cella di un oggetto Treeview.
Ho trovato solamente questi tipi di renderer:

Gtk::CellRendererAccel - Renders a keyboard accelerator in a cell
Gtk::CellRendererCombo - Renders a combobox in a cell
Gtk::CellRendererPixbuf - Renders a pixbuf in a cell
Gtk::CellRendererProgress - Renders numbers as progress bars
Gtk::CellRendererSpin - Renders a spin button in a cell
Gtk::CellRendererText - Renders text in a cell
Gtk::CellRendererToggle - Renders a toggle button in a cell

Ma per inserire un bottone non c’è niente?

Grazie

Michele


#14

Ho integrato ActiveRecord, di Rails.
Tutto il codice che scrivo lo sto mettendo in un repository SVN su
Google Code:

http://code.google.com/p/casaparrinastore/source

ciao

Michele F.

Ricciardi Biri wrote:

Ciao, io sono un nuovo utente del Forum e scusatemi se mi intrometto
così bruscamente.
Volevo solo chiederti un favore se possibile.
Io sto utilizzando per la prima volta Ruby/Gtk e sono davanti ad un
problema. Io dovrei creare una rubrica telefonica e quindi utilizzare
un database.
Mi indicheresti con qualche esempio come hai fatto Tu per il Tuo
gestionale?
Ti ringrazio molto.