【发布时间】:2017-03-09 22:25:11
【问题描述】:
我正在尝试创建一个覆盖有图像的全屏窗口,并在窗口中间创建一个条目小部件。
我已经有了带有图像的全屏窗口,但是,我正在努力将输入框准确地定位在窗口的中间。我试过Gtk::Alignment,Gtk::VBox,Gtk::HBox,Gtk::Table
和许多其他容器,但老实说,我并不真正了解所有容器的行为方式。我习惯于使用绝对定位的 WIN32 API,这是非常不同的。我知道我可以在 Gtk/gtkmm 中使用固定定位之类的东西,但是,这对我来说似乎不是最干净的解决方案。
class App : public Gtk::Window {
public:
[...]
App() {
fullscreen();
Gdk::Rectangle rec = get_screen()->get_monitor_workarea(get_screen()->get_primary_monitor());
set_default_size(rec.get_width(), rec.get_height());
show();
m_bgImage.set("image.jpg");
m_layout.add(m_bgImage);
m_entry.set_size_request(300, 30);
m_entry.set_opacity(0.5);
m_entry.set_visibility(false);
m_entry.signal_activate().connect(sigc::mem_fun(*this, &PadlockGui::onPasswordEntryReturn));
m_entry.set_icon_from_icon_name("edit-clear", Gtk::ENTRY_ICON_SECONDARY);
m_entry.signal_icon_press().connect(sigc::mem_fun(*this, &PadlockGui::clearPasswordEntry));
m_layout.add(m_entry);
add(m_layout);
show_all_children();
}
private:
Gtk::Layout m_layout;
Gtk::Image m_bgImage;
Gtk::Entry m_entry;
[...]
};
【问题讨论】: