Autore Topic: Uextras - Software per gestire, personalizzare e pulire i sistemi Debian based  (Letto 13857 volte)

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
magari gia lo sai, puoi anche selEzionare gb.gui ,in questo modo i, tuo programma utilizzera gtk o qt automaticamente in base al de in cui viene lanciato.

vaillant86

  • Visitatore
Ciao. Il problema è proprio questo!! Quando parlavo di

Nei componenti c'è abilitato lo "switcher GTK/QT"...

mi riferivo proprio a questo  :'(


vaillant86

  • Visitatore
Non so cosa ho fatto o cosa ho toccato, ma adesso su KDE si vede una meraviglia  :rolleyes: boh, meglio così.

Ora sto cercando di fare una cosa: in questa sezione



ho inserito il totale della memoria del sistema e il quantitavo utilizzato. Questo secondo valore però rimane "freezato" all'apertura del programma. C'è un modo per fare il refresh dei dati inseriti, magari aggiornando il valore ogni tot secondi?

Il codice che ho utilizzato è

Codice: Gambas [Seleziona]

DIM output2 AS String

SHELL "echo `free -m | grep - | awk {'print $3'}`" TO output2
TextLabel2.Text = output2


Non so se nel forum se ne sia già discusso, sinceramente non ho idea di come cercare un argomento simile...  :-[

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
credo che dovrai utilizzare un timer che ogni tot esegua quel comando

vaillant86

  • Visitatore
Avevo già letto della funzione Timer nella documentazione di Gambas, ma non ho capito come e dove metterlo...

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Allora, la colpa è parzialmente di Gambas ma principalmente dei sistemi su cui gira il programma.

Gambas 2 (immagino) usa le Qt3 e le GTK+. Se usi il componente gb.gui, questo seleziona le librerie grafiche in base al desktop.
Il problema sorge sulle distro più recenti che usano KDE: siccome KDE4 usa le Qt4, un software che gira usando le Qt3 come G2 apparirà orribile perché il sistema non ha preimpostato nessuna modifica nell'aspetto delle Qt3. Dovresti installare su quel sistema un software che si dovrebbe chiamare qtconfig-qt3 (o roba simile) e configurare a mano l'aspetto delle Qt3.

Usando le GTK non so se risolvi, perché spesso molte distro KDE non preimpostano l'aspetto delle applicazioni GTK per i loro DE.

Una possibile (parziale) soluzione è quella data da Ceskho, e cioè usare G3, che è basato sulle Qt4.
Visita il mio sito personale: http://www.leonardomiliani.com

vaillant86

  • Visitatore
@ leo72: grazie per la spiegazione. Come ho detto più sopra, adesso il programma si vede bene anche su Kubuntu e aptosid (entrambi con kde), forse qualche aggiornamento di kde mi ha risolto il problema. Tuttavia non posso utilizzare gambas3... se voglio che il mio programma venga utilizzato, devo scriverlo in gambas2, almeno fino a quando G3 non sarà nei repo di ubuntu. E' come se programmassi in python: non posso usare python 3 se ubuntu ha appena introdotto python 2.7  :)

@ fsurfing: sono riuscito a risolvere il problema. Ho racchiuso il comando postato prima dentro il timer, adesso ogni 2 secondi mi aggiorna i valori  ;) grazie per la dritta!

vaillant86

  • Visitatore
Grazie al vostro aiuto, sono riuscito a fare grandi cose :) Una nuova versione è disponibile, in prima pagina i link  ;)

vaillant86

  • Visitatore
Sono di nuovo inceppato :hard:

Dunque, ho scritto questo codice
Codice: gambas [Seleziona]

DIM ppa1, ppa2 AS String

' Metti il primo e il secondo file della directory /etc/apt/sources.list.d/ in due variabili
SHELL "ls /etc/apt/sources.list.d/ | grep -v save | sed -n '1p'" TO ppa1
SHELL "ls /etc/apt/sources.list.d/ | grep -v save | sed -n '2p'" TO ppa2

' Se esiste il primo file della directory /etc/apt/sources.list.d/ allora stampa il suo nome
IF Exist("/etc/apt/sources.list.d/" & ppa1) = TRUE THEN
PRINT ppa1
ENDIF


ma non me lo "printa"... ho provato anche a mettere l'opzione FALSE e funziona a dovere, ergo l'errore sta nel ("/etc/apt/sources.list.d/" & ppa1), ma non sono riuscito a capire come risolverlo. Secondo le guide presenti nel wiki, la sintassi dovrebbe essere corretta, no?

Per completezza di informazioni, il percorso del primo file di quella dir è /etc/apt/sources.list.d/chromium-daily-ppa-maverick.list

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.272
  • Chi parla poco dice tanto...
    • Mostra profilo
Codice: gambas [Seleziona]
DIM ppa1, ppa2 AS String  
 
' Metti il primo e il secondo file della directory /etc/apt/sources.list.d/ in due variabili 
SHELL "ls /etc/apt/sources.list.d/ | grep -v save | sed -n '1p'" TO ppa1 
SHELL "ls /etc/apt/sources.list.d/ | grep -v save | sed -n '2p'" TO ppa2 

' elimina eventuali spazi e ritorni a capo
ppa1 = Trim(ppa1)
ppa2 = Trim(ppa2)

' Se esiste il primo file della directory /etc/apt/sources.list.d/ allora stampa il suo nome 
IF Exist("/etc/apt/sources.list.d/" & ppa1) = TRUE THEN 
PRINT ppa1 
ENDIF 

vaillant86

  • Visitatore
Grazie per la risposta :2birre:, adesso funziona il ppa1 ma c'è il problema inverso. Nella dir c'è un solo file, per cui il comando che va su "ppa2" in realtà è vuoto!

Eliminando con trim gli spazi, Exist() considera la directory e non il file, quindi mi considera l'IF come vero. Non so se mi sono spiegato bene...

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.272
  • Chi parla poco dice tanto...
    • Mostra profilo
Codice: gambas [Seleziona]
Dim ppa1, ppa2 As String    
   
' Metti il primo e il secondo file della directory /etc/apt/sources.list.d/ in due variabili   
Shell "ls /etc/apt/sources.list.d/ | grep -v save | sed -n '1p'" To ppa1   
Shell "ls /etc/apt/sources.list.d/ | grep -v save | sed -n '2p'" To ppa2   
 
' elimina eventuali ritorni a capo 
ppa1 = Replace(ppa1, "\n", "") 
ppa2 = Replace(ppa2, "\n", "") 
 
' Se esiste il primo file della directory /etc/apt/sources.list.d/ allora stampa il suo nome   
If ppa1 Then
  If Exist("/etc/apt/sources.list.d/" & ppa1) Then Print ppa1
Endif 

If ppa2 Then
  If Exist("/etc/apt/sources.list.d/" & ppa2) Then Print ppa2
Endif 


vaillant86

  • Visitatore
Yes, tutto a posto!! ;D Grazie mille per l'aiuto Milio ;)

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.272
  • Chi parla poco dice tanto...
    • Mostra profilo
de nada ;)

Offline Taurus dei miracoli

  • Maestro Gambero
  • ****
  • Post: 335
  • In omnia pericula tasta testicula
    • Mostra profilo
Scaricato ed installato.
Mi sembra molto carino e utile.
Ora lo provo un po' e poi ti dico gli eventuali bugs che trovo. :2birre:
"penso spesso ad acquiloni,
a grandi imprese,
ad una thailandese...
...ma l'impresa eccezionale,
dammi retta,
è essere normale"
(L. Dalla)