Autore Topic: [RISOLTO]finestre trasparenti ... anche troppo o per nulla  (Letto 2082 volte)

Offline vigiot

  • Gambero
  • **
  • Post: 75
    • Mostra profilo
[RISOLTO]finestre trasparenti ... anche troppo o per nulla
« il: 30 Novembre 2017, 23:58:42 »
Salve
E' da un paio di giorni che sto cercando di generare da codice un MessageBox con i bordi arrotondati.
Ho provato con:
Codice: [Seleziona]
Public Sub my_message_box(responso As Boolean) As Boolean
'Dim my_win_box As Window ' posta nelle "Dichiarazioni"
Dim pc As Picture
Dim my_dwg As DrawingArea
Dim sPath As String

  ' una qualsiasi immagine png con sfondo trasparente
  ' con Width minore di questa finestra
  ' ed Heigth minore di 120 px.
  sPath = Application.Path &/ "fatture_user/image/vigiot.png"
  pc = Picture.Load(sPath)
  responso = False
  With my_win_box = New Window As "w_box"
    .Width = 450
    .Height = 160
    .Resizable = False
    .Border = False
    .Minimized = False
    .Background = Color.Transparent
    '.Opacity = 0
    .Mask = True
  End With
 
  With my_dwg = New DrawingArea(my_win_box) As "m_dwg"
    .X = 0
    .Y = 0
    .Width = my_win_box.Width
    .Height = my_win_box.Height
    .Background = Color.Transparent
  End With
  my_dwg.Cached = True
  With Paint
    .Begin(my_dwg)
    .Brush = Paint.Color(Color.DarkBlue)
    .LineWidth = 2.5
    .Rectangle(1, 1, my_win_box.Width - 2, my_win_box.Height - 2, my_win_box.Width / 6)
    .Stroke(False)
    .DrawPicture(pc, ((my_win_box.Width / 2) - pc.Height / 2), 20, pc.Width, pc.Height)
    .Brush = Paint.Color(Color.Black)
    .LineWidth = 1
    .Rectangle((my_win_box.Width / 2) - 30, my_win_box.Height - 32, 60, 20, 6)
    .Stroke(False)
    .MoveTo((my_win_box.Width / 2) - 14, my_win_box.Height - 16)
    .Font.Bold = True
    .Text("OK")
    .Fill(True)
    .End
  End With
  responso = my_win_box.ShowModal()
  Print responso
  Return responso
End

Public Sub m_dwg_MouseDown()
  If Mouse.X > ((my_win_box.Width / 2) - 70) Then
    If Mouse.Y > (my_win_box.Height - 30) Then
      my_win_box.Close(3)
    Endif
  Endif
End
Ma il rettangolo di sfondo appare comunque.
Settare " .Background = Color.Transparent "  della finestra non serve a nulla.    ???
Mentre   con " .Opacity = 0 "  la finestra non si vede proprio !    :o
In compenso il "finto bottone" funziona.
D'accordo che tutto il male non viene per nuocere però ... >:(
Non vorrei che il problema ( a parte quello che sta fra la sedia e la tastiera  :coder: ) fosse nel gestore di sistema delle finestre.  :hatecomputer:
Qualche suggerimento ?

 :ciao: :ciao:
« Ultima modifica: 04 Dicembre 2017, 16:15:29 da vigiot »
Siamo tutti ignoranti, ma fortunatamente non della stessa cosa. Albert Einstein

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.157
  • Tonno verde
    • Mostra profilo
Re:finestre trasparenti ... anche troppo o per nulla
« Risposta #1 il: 01 Dicembre 2017, 11:03:54 »
In Gambas vi sono già i MessageBox e i Balloon a che scopo tutto questo?

 :ciao:

P.S. Dando un'occhiata rapida mi chiedo a cosa serva la DrawingArea non puoi  disegnare e/o scrivere direttamente nell'immagine?
« Ultima modifica: 01 Dicembre 2017, 11:19:39 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vigiot

  • Gambero
  • **
  • Post: 75
    • Mostra profilo
Re:finestre trasparenti ... anche troppo o per nulla
« Risposta #2 il: 01 Dicembre 2017, 13:23:11 »
Come avevo scritto ...
Citazione
sto cercando di generare da codice un MessageBox con i bordi arrotondati.
E' uno " sfizio " altrimenti detto " trastullo ".  ;)
I message box hanno la loro finestra " standard " con sfondo opaco e grigio, ne volevo fare uno un po più diverso  da solito.
Questo è il primo esperimento fallito , ne seguiranno altri ... forse  :)
Se non sbaglio c'era qualcosa sul Wiki per le finestre trasparenti tipo:
creare un'immagine trasparente delle stesse dimensioni della finestra ...
Proverò a generarne una con cairo, poi vedremo.

Grazie Gianluigi
 :ciao: :ciao: :ciao:
Siamo tutti ignoranti, ma fortunatamente non della stessa cosa. Albert Einstein

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.157
  • Tonno verde
    • Mostra profilo
Re:finestre trasparenti ... anche troppo o per nulla
« Risposta #3 il: 01 Dicembre 2017, 15:29:50 »
Come avevo scritto ...
Citazione
sto cercando di generare da codice un MessageBox con i bordi arrotondati.
E' uno " sfizio " altrimenti detto " trastullo ".  ;)
I message box hanno la loro finestra " standard " con sfondo opaco e grigio, ne volevo fare uno un po più diverso  da solito.
Questo è il primo esperimento fallito , ne seguiranno altri ... forse  :)
Se non sbaglio c'era qualcosa sul Wiki per le finestre trasparenti tipo:
creare un'immagine trasparente delle stesse dimensioni della finestra ...
Proverò a generarne una con cairo, poi vedremo.

Grazie Gianluigi
 :ciao: :ciao: :ciao:

Hai risposto solo alla prima domanda, i balloon non vanno bene?

Comunque tu intendi una cosa così(vedi allegato)?
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vigiot

  • Gambero
  • **
  • Post: 75
    • Mostra profilo
Re:finestre trasparenti ... anche troppo o per nulla
« Risposta #4 il: 01 Dicembre 2017, 18:11:58 »
Non so cosa intendi ... :-[
Io povero mortale ho " solo " Gambas Ver. 3.5.4
e le gb.gui.qt non le ho ... :'(
Se qualche paziente volenteroso mi insegni come installarle ...

Grazie comunque
 :ciao: :ciao: :ciao:
Siamo tutti ignoranti, ma fortunatamente non della stessa cosa. Albert Einstein

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.157
  • Tonno verde
    • Mostra profilo
Re:finestre trasparenti ... anche troppo o per nulla
« Risposta #5 il: 01 Dicembre 2017, 18:19:54 »
Non funziona se cambi il componente con gb.qt4 e gb.qt4.ext?
Vale a dire togli la spunta a gb.gui.qt e metti la spunta a gb.qt4 e gb.qt4.ext e dai ok.

 :ciao:

P.S. Se desideri compilare ti posso aiutare per quello che so, io uso Ubuntu e Xubuntu.

Post P.S. Dimenticavo: Dopo aver cambiato i componenti conviene dare il comando Compila tutto
« Ultima modifica: 01 Dicembre 2017, 19:02:44 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vigiot

  • Gambero
  • **
  • Post: 75
    • Mostra profilo
Re:finestre trasparenti ... anche troppo o per nulla
« Risposta #6 il: 01 Dicembre 2017, 19:43:48 »
Grazie per i consigli, verificherò  :hatecomputer:
Ad ogni buon conto ti allego un esempio fatto al volo,
prova a farlo girare ...
Se vuoi poi fammi sapere
Grazie
 :ciao: :ciao:
Siamo tutti ignoranti, ma fortunatamente non della stessa cosa. Albert Einstein

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.157
  • Tonno verde
    • Mostra profilo
Re:finestre trasparenti ... anche troppo o per nulla
« Risposta #7 il: 01 Dicembre 2017, 19:58:19 »
Si vede così (allegato) e quando chiudo la finestra rimane il message perché non è modale e non risponde.

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vigiot

  • Gambero
  • **
  • Post: 75
    • Mostra profilo
Re:finestre trasparenti ... anche troppo o per nulla
« Risposta #8 il: 01 Dicembre 2017, 21:58:40 »
Hai provato a cliccare su " Ok " ?
E' una scritta ma funge da " bottone " ...
 8)
 Grazie comunque di averlo provato.

 :ciao: :ciao:
Siamo tutti ignoranti, ma fortunatamente non della stessa cosa. Albert Einstein

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.157
  • Tonno verde
    • Mostra profilo
Re:finestre trasparenti ... anche troppo o per nulla
« Risposta #9 il: 01 Dicembre 2017, 22:11:56 »
Certo che ho fatto click su OK e se la finestra main è aperta funziona.
Se al contrario chiudi prima la finestra main, cosa che non succederebbe se il message fosse modale, anche se clicchi su OK non accade nulla, nel senso che la finestra message non si chiude.
Spero di essere stato chiaro.
Tu invece sei riuscito a provare il mio codice?

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vigiot

  • Gambero
  • **
  • Post: 75
    • Mostra profilo
Re:finestre trasparenti ... anche troppo o per nulla
« Risposta #10 il: 02 Dicembre 2017, 00:06:06 »
Purtroppo non ho i componenti necessari.
se attivo il qt4.ext  ronfa per un po ma non riesce a caricarlo.
Per quanto riguarda il " ShowModal " non lo ho messo apposta, altrimenti
lo slider non cambia l'opacità della finestra, che poi era il motivo della discussione.
alla fine se anche con libcairo non ottengo risultati abbandono momentaneamente l'idea
del message box ad ok .... :bad:
Quindi ancora una prova, ma sono sempre meno convinto.
D'altronde se canonical ha abbandonato X11 ci sarà pure un motivo.
Grazie ancora
 :ciao: :ciao:
Siamo tutti ignoranti, ma fortunatamente non della stessa cosa. Albert Einstein

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.157
  • Tonno verde
    • Mostra profilo
Re:finestre trasparenti ... anche troppo o per nulla
« Risposta #11 il: 02 Dicembre 2017, 13:14:10 »
Io non capisco il codice che ti ho postato è di una tale semplicità che se non riesci a farlo funzionare con Compila tutto significa che il tuo Gambas3 è gravemente bacato, come del resto dimostra il fatto che tu non riesca a caricare il componente gb.qt4.ext.
Come tu possa pretendere di programmare così proprio non mi riesce di capire.
Se sei tanto in gamba da utilizzare Debian allora devi anche imparare a compilare il tuo Gambas altrimenti ti conviene lasciar perdere Debian scaricarti Kubuntu che è l'OS che usa Minisini oppure se non hai tanta RAM Xubuntu che è un gioiellino che non abbisogna di tanta memoria (solo qualche aggiustatura perché Gambas funzioni al meglio) e così ti puoi scaricare l'ultimo Gambas da PPA.

Se non farai così non saremo in grado di aiutarti.

P.S. Il progettino da me postato funziona anche con solo le qt4, le gb.qt4.ext una volta si caricavano da sole insieme alle qt.

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vigiot

  • Gambero
  • **
  • Post: 75
    • Mostra profilo
Re:finestre trasparenti ... anche troppo o per nulla
« Risposta #12 il: 02 Dicembre 2017, 14:09:02 »
Scusa Gianluigi
Ho fatto come suggerisci: via la spunta a gb.qt4 e attivato gb.qt4ext ( che a sua volta attiva gb.qt4 )
ma il gb.gui.qt non c'è proprio !  :o
ma se tento di aprire il tuo progetto mi dà questi errori:
manca -> gb.gui.qt
e  se dò Annulla -> Unknow Error Project.ReadProject.3362
se invece dò Continua gambas rugna e basta.
Ovviamente non potendolo caricare non posso compilare ... :-*
Altro non sò  ???
gambas è stato installato direttamente dal Repo di Debian 8 con Synaptic
E se il gestore della rete non ha fatto danni i files sono corretti.
Se invece avessi usato il pacchetto .deb avrei potuto controllare il checksum ... ;)
Compilandolo da sorgente può capitare ( ma non è detto ) di " dimenticarsi " qualcosa.
Nel frattempo ho guardato i file .h di gtk+ per creare le finestre trasparenti viene usato HTML poi elaborato da gtk_builder.
Quindi è inutile insistere.  :hatecomputer:
Le finestre trasparenti con sistemi basati su gtk sono troppo elaborate  da costruire per me.  :nono:
Devo comunque aggiornare la mia linux box magari con una distro differente da Debian ...

Grazie per la tua pazienza e a presto.
 :ciao: :ciao: :ciao:
Siamo tutti ignoranti, ma fortunatamente non della stessa cosa. Albert Einstein

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.157
  • Tonno verde
    • Mostra profilo
Re:finestre trasparenti ... anche troppo o per nulla
« Risposta #13 il: 02 Dicembre 2017, 14:24:15 »
Scusa Gianluigi
Ho fatto come suggerisci: via la spunta a gb.qt4 e attivato gb.qt4ext ( che a sua volta attiva gb.qt4 )
ma il gb.gui.qt non c'è proprio !  :o
ma se tento di aprire il tuo progetto mi dà questi errori:
manca -> gb.gui.qt
e  se dò Annulla -> Unknow Error Project.ReadProject.3362
se invece dò Continua gambas rugna e basta.
Ovviamente non potendolo caricare non posso compilare ... :-*
Altro non sò  ???


Se lo scrivevi subito avrei provato a mandarti un nuovo file con il solo QT (vedi allegato se funge).
Ma probabilmente tu non lo vedrai così (vedi immagine allegata)

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 960
    • Mostra profilo
Re:finestre trasparenti ... anche troppo o per nulla
« Risposta #14 il: 02 Dicembre 2017, 17:43:46 »
Strano che hai ancora la 3.5.4... anche io ho Debian e uso la 3.9.2.
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.