Schrift
[thread]12876[/thread]

ListBox in Gtk2 oder SimpleList schiebbar

Leser: 1


<< >> 2 Einträge, 1 Seite
IceRage
 2008-12-07 22:03
#116948 #116948
User since
2008-09-07
93 Artikel
BenutzerIn
[default_avatar]
Hallo,

bin gerade dabei mich mit perl, in Verbindung mit grafischen Oberflächen zu beschäftigen. Ich benutze als Oberflächen Gestalter glade, weswegen ich hier auch nach Gtk2, und nicht nach Tk frage. Tk ist in Glade, so weit es meine Version betrifft, nicht verfügbar. Man mag mich korrigieren, falls ich da etwas übersehen habe.

Grundsätzlich soll folgendes möglich sein:
1. Eine Datei von einem Server abholen, auf Buttonklick hin (einlesen) und ...
2. Jede Zeile dieser Datei, je einer Zeile der Listbox zuweisen

(Die einzellnen Zeilen stehen in keinem Zusammenhang zueinander, und sollen, jede für sich, später in der ListBox auswählbar sein. choice-mode: multiple)

3. Die ListBox soll schiebbar sein, also scrollable, eben mit Schieberegler versehen sein.
4. Es sollen mehrere Einträge der ListBox auswählbar sein, und diese dann auf Knopfdruck hin, weiter verarbeitet werden können ... (erstmal egal wie) ...


Mir geht es hier spziell um Punkt 2. und 3. Das eine Datei zeilenweise in die LB eingelesen werden soll, sei hier nur am Rande erwähnt, falls man sich alles ein bisschen besser vorstellen möchte.


Konkret also: Welches Steuerelement kann verwendet werden, um den 2. und 3. Schritt umsetzten zu können, und das möglichst mit Gtk2 Mitteln, da auch weiterhin, zur Oberflächen Gestaltung Glade-2 verwendet werden soll.

(Es ist bekannt, dass mittlerweile eine Version 3. von Glade verfügbar ist, allerdings machte ich es mir bei der Installation meiner Glade-Version einfach, und griff einfach auf apt-get install glade zurück. Soweit ich es erkennen konnte, sind dort auch so weitesgehend alle benötigten Steuerelemente vorhanden)

Es wäre nett, wenn mir da jemand einen Tipp geben könnte. Möglicherweise ist der Ansatz, ein ListBox Element zu suchen, auch nicht der vorzuziehende. Ist es vielleicht Sinnvoller eine SimpleList zu verwenden, und dieser einen Schiebebalken zu zuweisen?

Gruß, IceRage


PS: dies hier ist bis jetzt mein Code:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/usr/bin/perl

use warnings;
use strict;

use Glib qw(TRUE FALSE);
use Gtk2 -init;
use Gtk2::GladeXML;
use Gtk2::SimpleList;
use Glib;


my $g = Gtk2::GladeXML->new('wiceshaped.glade');

my $vbox = $g->get_widget('vbox1');
my $slist = Gtk2::SimpleList->new('colname', 'text');
$slist->get_selection->set_mode('multiple');


push @{$slist->{data}}, [ 'text1'];
push @{$slist->{data}}, [ 'text2'];

$vbox->add($slist);
$slist->show();

Gtk2->main();


Ist nur Testcode, um den Umgang mit dem Steuerelement zu üben. Was noch nicht klappt, ist, einen Anzeigebereich, also beispielsweise 5 Zeilen vorzugeben, und die übrigen Zeilen per Schieberegler, bedarfsweise anzuzeigen.
IceRage
 2008-12-08 02:48
#116950 #116950
User since
2008-09-07
93 Artikel
BenutzerIn
[default_avatar]
Der Code jetzt.

Das Schieben der SimpleList funktioniert soweit. Gibt es da etwas, dass man besser machen kann? oder sagen wir erstmal, etwas das so, vielleicht unter der Berücksichtigung, der Verwendung von Signalen, nicht funktionieren wird?

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/usr/bin/perl

use warnings;
use strict;

use Glib qw(TRUE FALSE);
use Gtk2 -init;
use Gtk2::GladeXML;
use Gtk2::SimpleList;
use Glib;


my $g = Gtk2::GladeXML->new('wiceshaped.glade');

my $vbox = $g->get_widget('vbox1');
my $main_window = $g->get_widget('window1');
my $slist = Gtk2::SimpleList->new('colname', 'text');
$slist->get_selection->set_mode('multiple');

push @{$slist->{data}}, [ 'text1'];
push @{$slist->{data}}, [ 'text2'];
push @{$slist->{data}}, [ 'text3'];
push @{$slist->{data}}, [ 'text4'];
push @{$slist->{data}}, [ 'text5'];
push @{$slist->{data}}, [ 'text6'];
push @{$slist->{data}}, [ 'text7'];
push @{$slist->{data}}, [ 'text8'];
push @{$slist->{data}}, [ 'text9'];
push @{$slist->{data}}, [ 'text10'];

my $scrwin = Gtk2::ScrolledWindow->new();
$scrwin->set_policy('automatic', 'automatic');
$scrwin->add_with_viewport($slist);

$vbox->add($scrwin);
$main_window->show_all();

Gtk2->main();
<< >> 2 Einträge, 1 Seite



View all threads created 2008-12-07 22:03.