Gambas-it

Gambas3 => Programmazione => Topic aperto da: gianfry56 - 20 Dicembre 2016, 15:54:57

Titolo: [RISOLTO] ComboBox: come aumentare il numero elementi visualizzati nell'elenco
Inserito da: gianfry56 - 20 Dicembre 2016, 15:54:57
Ho cercato nel forum e nel wiki, ma sembra che il problema non sia mai stato posto...
Io vorrei visualizzare, nell'elenco a discesa di un ComboBox, più delle 10 opzioni che il controllo mostra nella sua versione standard, per evitare di dover scorrere la lista con la barra laterale.

Non esiste una proprietà a riguardo, ma non esiste nemmeno un 'Children' che possa fare riferimento ad un oggetto che contiene quell'elenco di elementi   :-\
Perché non posso avere un elenco con 20 linee, accidenti!!  :hatecomputer:

Qualcuno sa in che modo viene gestita la lista delle opzioni?   :ciao:
Titolo: Re:ComboBox: come aumentare il numero degli elementi visualizzati nell'elenco
Inserito da: gianfry56 - 20 Dicembre 2016, 16:07:30
Oops... la cosa è strana  :-\

Uso Kubuntu, quindi, in gambas, adopero componenti gb.qt4, e con quelli il combobox mostra solo 10 elementi...

ho provato il progetto con gb.gtk3 e magicamente la lista del combo è diventata di 20 elementi....  :rolleyes:
Titolo: Re:ComboBox: come aumentare il numero degli elementi visualizzati nell'elenco
Inserito da: vuott - 20 Dicembre 2016, 16:10:47
Scusami, non riesco a capire. Se io inserisco semplicemente un oggetto ComboBox sul Form, quando avvio il programma, il ComboBox ha un numero di elementi pari a zero.

Tu cosa intendi con "mostra solo 10 elementi" ?

 ???
Titolo: Re:ComboBox: come aumentare il numero degli elementi visualizzati nell'elenco
Inserito da: gianfry56 - 20 Dicembre 2016, 16:16:13
Si, scusa, forse non mi ero spiegato bene:
se nella proprietà 'List' del ComboBox inserisco un numero di elementi superiore a 10 (per esempio 20 elementi), in esecuzione il combo ne mostra solo 10 nella suo elenco a discesa; per vedere gli altri devi scorrere la lista con la barra laterale.
Questo però adesso ho scoperto che è valido solo usando il componente gb.qt4, mentre se uso gb.gtk3 allora l'elenco a discesa mostra tutti gli elementi che ho inserito nella lista del combo
Titolo: Re:ComboBox: come aumentare il numero degli elementi visualizzati nell'elenco
Inserito da: gianfry56 - 20 Dicembre 2016, 16:18:55
Volendo continuare ad usare il componente gb.qt4, avrei voluto trovare il sistema per 'allungare' la lista degli elementi, mi spiego?   :ciao:
Titolo: Re:ComboBox: come aumentare il numero degli elementi visualizzati nell'elenco
Inserito da: vuott - 20 Dicembre 2016, 16:22:57
Sì, ho compreso.
Titolo: Re:ComboBox: come aumentare il numero degli elementi visualizzati nell'elenco
Inserito da: tornu - 21 Dicembre 2016, 21:34:29
Se proprio la barra di scorrimento ti dà "fastidio"  ???,
vedi se questa idea fà al caso tuo
Codice: [Seleziona]
' Gambas class file

  Private $hLvObject As ListView
  Private $iCounter As Integer

Public Sub MenuButton1_Click()
  $iCounter = $iCounter + 1

  If $iCounter = 1 Then
      $hLvObject = New ListView(Me) As "lvwItem"
      With $hLvObject
        .Name = "lvwItem"
        .Move(136, 40, 232, 425) ' (X, Y, W, H)
        .Font.Size = 10
        .Border = Border.Etched
        .Background = Color.White
        .Add("1", " Item 1")
        .Add("2", " Item 2")
        .Add("3", " Item 3")
        .Add("4", " Item 4")
        .Add("5", " Item 5")
        .Add("6", " Item 6")
        .Add("7", " Item 7")
        .Add("8", " Item 8")
        .Add("9", " Item 9")
        .Add("10", " Item 10")
        .Add("11", " Item 11")
        .Add("12", " Item 12")
        .Add("13", " Item 13")
        .Add("14", " Item 14")
        .Add("15", " Item 15")
        .Add("16", " Item 16")
        .Add("17", " Item 17")
        .Add("18", " Item 18")
        .Add("19", " Item 19")
        .Add("20", " Item 20")
      End With
    Else
      $hLvObject.Visible = False
      $iCounter = 0
  Endif
End

Public Sub lvwItem_Click()
  $hLvObject.Item.Selected = True
  $hLvObject.MoveCurrent
  MenuButton1.Text = $hLvObject.Item.Text
  $hLvObject.Visible = False

  $iCounter = 0
End
:ciao:
Titolo: Re:ComboBox: come aumentare il numero degli elementi visualizzati nell'elenco
Inserito da: gianfry56 - 21 Dicembre 2016, 21:45:46
grazie tornu, ma preferisco il mio combobox in versione gtk+3,
e non è che la barra mi dia sempre 'fastidio', è che in certi casi preferisco vedere tutte le opzioni del combo direttamente, senza doverle scorrere....  sono gusti  ;D

 :ciao:
Titolo: Re:ComboBox: come aumentare il numero degli elementi visualizzati nell'elenco
Inserito da: Gianluigi - 21 Dicembre 2016, 21:57:59
grazie tornu, ma preferisco il mio combobox in versione gtk+3,
e non è che la barra mi dia sempre 'fastidio', è che in certi casi preferisco vedere tutte le opzioni del combo direttamente, senza doverle scorrere....  sono gusti  ;D

 :ciao:

Verrà il giorno in cui prodigo ritornerai alle QT  :P
Titolo: Re:ComboBox: come aumentare il numero degli elementi visualizzati nell'elenco
Inserito da: gianfry56 - 21 Dicembre 2016, 22:00:57
Io sono SEMPRE in QT, Gianluigi, è solo che per necessità ho provato a vedere se funzionava con gtk+
e ancora non riesco a capire perché ci sia stà differenza  :hatecomputer:
Titolo: Re:ComboBox: come aumentare il numero degli elementi visualizzati nell'elenco
Inserito da: Gianluigi - 21 Dicembre 2016, 22:04:37
Minisini, se ricordo bene, ebbe a dire che non dipendeva da lui ma dalle librerie e che non ci poteva fare nulla.
Avevo cercato sulla ML ma non ho trovato la mail.
Titolo: Re:ComboBox: come aumentare il numero degli elementi visualizzati nell'elenco
Inserito da: gianfry56 - 21 Dicembre 2016, 22:06:01
Amen!  :-\
Titolo: Re:ComboBox: come aumentare il numero degli elementi visualizzati nell'elenco
Inserito da: Gianluigi - 21 Dicembre 2016, 22:07:07
Io sono SEMPRE in QT

Se usi il componente GTK non sei in QT ma in GTK, non confondere i componenti con il OS.
Titolo: Re:ComboBox: come aumentare il numero degli elementi visualizzati nell'elenco
Inserito da: gianfry56 - 21 Dicembre 2016, 22:22:34
Questo è vero, però ora ti mostro una cosa strana:
ho provato  un progetto con questi componenti:
gb.qtk e gb.qtk.opengl
e il risultato è un po ambiguo, perché gli spinbox non hanno le classiche icone gtk+ (+ rosso e - verde per aumentare o diminuire il valore)
ma hanno le freccette (su e giù) come la versione qt

riesci a spiegarmelo?   :rolleyes:
Titolo: Re:ComboBox: come aumentare il numero degli elementi visualizzati nell'elenco
Inserito da: Gianluigi - 21 Dicembre 2016, 22:40:44
Questo è vero, però ora ti mostro una cosa strana:
...
riesci a spiegarmelo?   :rolleyes:

Ma è proprio quello che sto cercando di spiegarti, le librerie GTK in Gambas non funzionano a dovere, sono piene di bug e non c'è verso di fargliele migliorare ci hanno provato in tanti ma Minisini è sordo dice che fanno schifo che sono intrattabili e rimane fedele alle qt.
Usando Kubuntu ti sei tolto tutta quella parte che noi che usiamo Unity, Gnome e altri desktop che si basano su GTK abbiamo dovuto affrontare per armonizzare il nostro desktop con le librerie QT.
Perdi qualcosa in esperienza ma ci guadagni nel non avere rotture.
A patto naturalmente che ti dimentichi le librerie GTK.
Quando inizi un progetto grafico fallo gb.gui.qt e non avrai problemi o almeno ne avrai decisamente meno.
Titolo: Re:ComboBox: come aumentare il numero degli elementi visualizzati nell'elenco
Inserito da: gianfry56 - 21 Dicembre 2016, 22:43:27
Dimenticate.
 :ok: