【问题标题】:How to insert text exactly into Gtk::ProgressBar in GTK-3 (Like in GTK-2)如何在 GTK-3 中将文本准确插入 Gtk::ProgressBar(就像在 GTK-2 中一样)
【发布时间】:2020-02-28 17:34:56
【问题描述】:
【问题讨论】:
标签:
migration
gtk
progress-bar
gtkmm
【解决方案1】:
这是专业人士向我展示的一种方法。
通过 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