我需要向进度栏添加文本,如下例所示:
代码完全取自官方网站:https://developer.gnome.org/gtkmm-tutorial/stable/sec-multithread-example.html.en
但它对我不起作用。显示在进度条上方的文本"Fraction“,但它应该恰好显示在它的内部。原因何在?如何修复它?
[https://i.stack.imgur.com/PJJqs.png] <-应该是这样的
[https://i.stack.imgur.com/o00x8.png] <-看起来像这样
OS - Ubuntu 18.04.3 LTS
发布于 2020-07-23 06:36:29
这是一位专业人士向我展示的一种方法。
通过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.mainhttps://stackoverflow.com/questions/60456728
复制相似问题