【发布时间】:2016-04-16 09:44:00
【问题描述】:
我仍然是使用小部件工具包的新手,但我真的认为这应该可行。我从 developer.gnome.org 复制了这段代码,并将我自己的对象 (button2) 添加到 Buttons 类中,但只有原始的 m_button 显示在窗口中。 button.h的内容:
#ifndef GTKMM_EXAMPLE_BUTTONS_H
#define GTKMM_EXAMPLE_BUTTONS_H
#include <gtkmm/window.h>
#include <gtkmm/button.h>
class Buttons : public Gtk::Window
{
public:
Buttons()
{
m_button.add_pixlabel("info.xpm", "hi");
button2.add_pixlabel("info.xpm", "hello");
set_title("Pixmap'd buttons!");
set_border_width(10);
m_button.signal_clicked().connect( sigc::mem_fun(*this,
&Buttons::on_button_clicked) );
add(button2);
add(m_button);
show_all_children();
}
virtual ~Buttons()
{
}
protected:
//Signal handlers:
void on_button_clicked()
{
}
//Child widgets:
Gtk::Button button2;
Gtk::Button m_button;
};
#endif //GTKMM_EXAMPLE_BUTTONS_H
main.cpp 的内容:
#include "buttons.h"
#include <gtkmm/application.h>
int main(int argc, char *argv[])
{
Glib::RefPtr<Gtk::Application> app =
Gtk::Application::create(argc, argv,
"org.gtkmm.examples.base");
Buttons buttons;
return app->run(buttons);
}
【问题讨论】: