如何在 运行 Gtk3(Perl) 程序中修改标签的背景颜色?
How do you modify the background color of a label in a running Gtk3(Perl) program?
我似乎找不到在 运行 Gtk3 Perl 程序中修改标签背景颜色的正确方法。我可以破解 CSS 并在那里修改它(破解有效,但它像 **** 一样草率)但我找不到正确的方法。
我尝试查看绘图事件,但无法使其与标签的背景颜色一起使用。
有什么指点吗?
这是一个使用 pango_attr_list_new
的例子:
use strict;
use warnings;
use Gtk3 -init;
use Pango;
{
my $window = Gtk3::Window->new( 'toplevel' );
$window->signal_connect( destroy => sub { Gtk3->main_quit() } );
my $label = Gtk3::Label->new('Hello world!');
my $attrlist = Pango::AttrList->new();
my $fontsize = 20;
my $attr1 = Pango::AttrSize->new($fontsize * Pango::SCALE);
$attrlist->insert($attr1);
my $attr2 = Pango::AttrBackground->new(0x0000, 0xFFFF, 0x0000);
$attrlist->insert( $attr2 );
$label->set_attributes( $attrlist );
$window->add( $label );
$window->set_default_size( 200, 200 );
$window->set_position('center_always');
$window->show_all();
Gtk3->main();
}
我似乎找不到在 运行 Gtk3 Perl 程序中修改标签背景颜色的正确方法。我可以破解 CSS 并在那里修改它(破解有效,但它像 **** 一样草率)但我找不到正确的方法。
我尝试查看绘图事件,但无法使其与标签的背景颜色一起使用。
有什么指点吗?
这是一个使用 pango_attr_list_new
的例子:
use strict;
use warnings;
use Gtk3 -init;
use Pango;
{
my $window = Gtk3::Window->new( 'toplevel' );
$window->signal_connect( destroy => sub { Gtk3->main_quit() } );
my $label = Gtk3::Label->new('Hello world!');
my $attrlist = Pango::AttrList->new();
my $fontsize = 20;
my $attr1 = Pango::AttrSize->new($fontsize * Pango::SCALE);
$attrlist->insert($attr1);
my $attr2 = Pango::AttrBackground->new(0x0000, 0xFFFF, 0x0000);
$attrlist->insert( $attr2 );
$label->set_attributes( $attrlist );
$window->add( $label );
$window->set_default_size( 200, 200 );
$window->set_position('center_always');
$window->show_all();
Gtk3->main();
}