如何将文本准确插入Gtk-3中的Gtk::ProgressBar(类似于Gtk-2)



我需要向进度条添加文本,如本例所示:

代码完全取自官方网站:https://developer.gnome.org/gtkmm-tutorial/stable/sec-multithread-example.html.en

但这对我不起作用。进度条上方显示文本"分数完成",但它应该正好显示在进度条内部。原因是什么?如何修复?

[https://i.stack.imgur.com/PJJqs.png]<---应该像这个

[https://i.stack.imgur.com/o00x8.png]<----看起来像这个

操作系统-Ubuntu 18.04.3 LTS

下面是一个专业人员向我展示的方法。

通过CSS提供程序使用Gtk::Overlay和min-height。提供的示例:

require 'gtk3'
win = Gtk::Window.new('Sample')
win.signal_connect('destroy') { Gtk.main_quit }
box = Gtk::Box.new(:vertical)
overlay = Gtk::Overlay.new
pb = Gtk::ProgressBar.new
pb.set_fraction(0.5)
# pb.text = ("Something going on. . . ")
# pb.set_show_text(true)
provider = Gtk::CssProvider.new
provider.load(data: <<-CSS)
trough,
progress
{
min-height: 30px;
}
CSS
pb.style_context.add_provider(provider, Gtk::StyleProvider::PRIORITY_USER)
overlay.add(pb)
label = Gtk::Label.new("Something going on. . . ")
overlay.add_overlay(label)
b = Gtk::Button.new(label: 'Button')
b.signal_connect('clicked') do
Thread.new do
5.times do |i|
sleep 1
pb.fraction = (i + 1) / 5.0
end
end
end
win.add box
box.pack_start overlay
box.pack_start b
win.show_all
Gtk.main

最新更新