Skip to content

Commit e6019c6

Browse files
committed
Started cell renderer examples and notes
1 parent 1714762 commit e6019c6

File tree

2 files changed

+83
-0
lines changed

2 files changed

+83
-0
lines changed

10a-Cell-renderer-text.pl

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
#! /usr/bin/perl
2+
3+
use strict;
4+
use warnings;
5+
use diagnostics;
6+
use feature ':5.14';
7+
use Gtk3 '-init';
8+
use Glib qw/TRUE FALSE/;
9+
use Data::Dumper;
10+
11+
my $window = Gtk3::Window->new('toplevel');
12+
$window->set_title("Cell Renderer Example");
13+
$window->set_position("mouse");
14+
$window->set_default_size(250, 100);
15+
$window->set_border_width(5);
16+
$window->signal_connect (delete_event => sub { Gtk3->main_quit });
17+
18+
my $data = Gtk3::ListStore->new( 'Glib::Int', 'Glib::String' );
19+
20+
$data->set( $data->append, 0, 1, 1, 'First bit' );
21+
$data->set( $data->append, 0, 2, 1, 'second' );
22+
$data->set( $data->append, 0, 3, 1, 'third' );
23+
24+
my $tree = Gtk3::TreeView->new($data);
25+
26+
my $spinner = Gtk3::CellRendererSpin->new;
27+
$spinner->signal_connect( edited => \&on_amount_edited, $data );
28+
$spinner->set_property( editable => TRUE );
29+
30+
my $adj = Gtk3::Adjustment->new( 0, 0, 100, 1, 10, 0 );
31+
$spinner->set_property( adjustment => $adj );
32+
33+
my $cs = Gtk3::TreeViewColumn->new_with_attributes( 'Amount', $spinner, text => 0 );
34+
$tree->append_column($cs);
35+
36+
my $ct = Gtk3::TreeViewColumn->new_with_attributes( 'Numbers', Gtk3::CellRendererText->new, text => 1 );
37+
$tree->append_column($ct);
38+
39+
$window->add($tree);
40+
41+
$window->show_all;
42+
Gtk3->main;
43+
44+
sub on_amount_edited {
45+
my ( $widget, $path, $value, $store ) = @_;
46+
47+
my $path_str = Gtk3::TreePath->new($path);
48+
my $iter = $store->get_iter($path_str);
49+
50+
$store->set( $iter, 0, int($value) );
51+
}
52+
53+
54+
=head
55+
56+
57+
58+
treeview = Gtk.TreeView(model=self.liststore)
59+
60+
renderer_text = Gtk.CellRendererText()
61+
column_text = Gtk.TreeViewColumn("Text", renderer_text, text=0)
62+
treeview.append_column(column_text)
63+
64+
renderer_editabletext = Gtk.CellRendererText()
65+
renderer_editabletext.set_property("editable", True)
66+
67+
column_editabletext = Gtk.TreeViewColumn("Editable Text",
68+
renderer_editabletext, text=1)
69+
treeview.append_column(column_editabletext)
70+
71+
renderer_editabletext.connect("edited", self.text_edited)
72+
73+
self.add(treeview)
74+
75+
def text_edited(self, widget, path, text):
76+
self.liststore[path][1] = text
77+
78+
win = CellRendererTextWindow()
79+
win.connect("delete-event", Gtk.main_quit)
80+
win.show_all()
81+
Gtk.main()
82+
83+
=cut

Perl Gtk3 Tutorial.odt

139 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)