Topic: Creare un'interfaccia a barre (stile GParted, per capirsi)  (Letto 858 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline MarKco

  • python unicellularis
  • *
  • Post: 18
  • Punti reputazione: 0
    • Mostra profilo
    • Interno 1
Ciao a tutti,
mi chiamo Marco e mi sono da poco dedicato a Python.
Sto realizzando un'applicazione che offra un'interfaccia tutto sommato simile a GParted, o a PiTiVi: una serie di barre orizzontali suddivise in più segmenti.
Dovrei in seguito implementare anche un drag&drop tra una barra e l'altra, ma al momento quello che mi interessa di più è riuscire a produrre un abbozzo di interfaccia.

Ho pensato di realizzare il tutto con pyGTK e Glade, sto utilizzando Python 5.4 perché purtroppo sono in Windows e ho avuto notevoli problemi con la configurazione di Glade e GTK+ per Python 6.4.

Al momento quello che sono riuscito a realizzare è una finestra basilare con un menu, una barra degli strumenti ancora vuota, una drawing area sormontata da un righello e una barra di stato.



A questo punto vorrei disegnare le famose barre orizzontali nella drawing area. Sapreste consigliarmi come fare, o linkarmi qualche risorsa (anche codice di altri progetti) nella quale si utilizzino widgets simili? A quanto ho capito la fase di disegno si può gestire direttamente con pygtk oppure con delle librerie apposite. Voi cosa mi consigliate?

Grazie fin d'ora per l'aiuto
--
Marco

Ryuzaki_Eru

Re: Creare un'interfaccia a barre (stile GParted, per capirsi)
« Risposta #1 il: Giugno 10, 2010, 17:48 »
Puoi usare matplotlib. Una volta ho anche usato PyGame, ma matplotlib è meglio :D

Offline MarKco

  • python unicellularis
  • *
  • Post: 18
  • Punti reputazione: 0
    • Mostra profilo
    • Interno 1
Re: Creare un'interfaccia a barre (stile GParted, per capirsi)
« Risposta #2 il: Giugno 10, 2010, 17:58 »
Interessante,
non avevo pensato all'eventualità di usare un tool di plotting anziché di drawing.

Se riuscissi ad ottenere una via di mezzo tra questi due



di fatto avrei quello che sto cercando. Ora mi tuffo nella documentazione della libreria!

Grazie per la celerissssima risposta!   ;)

Offline pycasso

  • python erectus
  • ***
  • Post: 107
  • Punti reputazione: 0
    • Mostra profilo
    • viva la polpetta
Re: Creare un'interfaccia a barre (stile GParted, per capirsi)
« Risposta #3 il: Giugno 10, 2010, 20:55 »
Puoi usare cairo visto che è "legata" a gtk+

Offline MarKco

  • python unicellularis
  • *
  • Post: 18
  • Punti reputazione: 0
    • Mostra profilo
    • Interno 1
Re: Creare un'interfaccia a barre (stile GParted, per capirsi)
« Risposta #4 il: Giugno 11, 2010, 10:15 »
Puoi usare cairo visto che è "legata" a gtk+

Grazie della risposta!

Avevo pensato a Cairo, ma mi sembrava un po' - come dire - più a basso livello. Per me l'ideale sarebbe qualcosa che mi permettesse di trattare le forme in modo più basilare possibile, dato che quello di cui ho bisogno di fatto è al massimo di estenderle e spostarle in una sola dimensione (quella orizzontale), quindi a ben pensarci Cairo potrebbe essere una soluzione.
Volevo provare anche pygtkcanvas e pygoocanvas, non so se qualcuno qui abbia esperienza a riguardo...

Offline MarKco

  • python unicellularis
  • *
  • Post: 18
  • Punti reputazione: 0
    • Mostra profilo
    • Interno 1
Re: Creare un'interfaccia a barre (stile GParted, per capirsi)
« Risposta #5 il: Giugno 13, 2010, 13:39 »
Alla fine ho optato per una soluzione più "burina" ma più efficace per quello che in fondo è solo un prototipo di interfaccia.
Ho creato una VBox (anzi, ho esteso la classe VBox) all'interno della quale aggiungo dei bottoni (anche qui ho creato degli oggetti estendo gtk.Button), colorati, uno dietro l'altro.



In questo modo ho diversi vantaggi: innanzitutto posso controllare molto bene l'aspetto dei vari componenti utilizzando le funzioni predefinite di VBox e Button. Inoltre so già che il ridimensionamento e il redraw saranno automatici.

L'applicazione, alla fine, appare così (ricordo che è solo un abbozzo)



Ringrazio tutti per l'aiuto, terrò bene a mente i vostri consigli qualora il progetto dovesse andare in porto e mi trovassi a dover avere delle funzionalità grafiche più spinte.