C++ 将Gtk::条目添加到Gtk::对话框
我正在向C++ 将Gtk::条目添加到Gtk::对话框,c++,dialog,gtkmm,gtkentry,C++,Dialog,Gtkmm,Gtkentry,我正在向Gtk::Dialog添加Gtk::Entry Gtk::Dialog *dialog = manage ( new Gtk::Dialog() ); dialog->set_title("Add Text"); Gtk::Entry entry; entry.set_activates_default(true); entry.set_max_length(50); entry.set_text("hello world"); entry.select_region(0, e
Gtk::Dialog
添加Gtk::Entry
Gtk::Dialog *dialog = manage ( new Gtk::Dialog() );
dialog->set_title("Add Text");
Gtk::Entry entry;
entry.set_activates_default(true);
entry.set_max_length(50);
entry.set_text("hello world");
entry.select_region(0, entry.get_text_length());
dialog->add(entry);
dialog->show();
此代码显示一个空对话框。使用show_all()
或show_all_children()
时,不会发生任何事情,甚至不会显示一个空对话框
在所有情况下,我都会得到以下警告:
Gtk WARNING**:试图将类型为gtkmm_uugtkentry的小部件添加到gtkmm_ugtkdialog,但作为GtkBin子类,gtkmm_ugtkdialog一次只能包含一个小部件;它已经包含GtkVBox类型的小部件
请帮助我解决此问题。Gtk::对话框已经添加了一个VBox。查看Gtk::Dialog类的源文件,我找到了
get_vbox()
函数。我必须访问VBox以向对话框添加更多组件
dialog->get_vbox()->pack_start(*entry, Gtk::PACK_SHRINK);
dialog->set_text("hello world");
dialog->set_size_request(200,100);
dialog->show_all();
而且一切正常。Gtk::Dialog已经添加了一个VBox。查看Gtk::Dialog类的源文件,我找到了
get_vbox()
函数。我必须访问VBox以向对话框添加更多组件
dialog->get_vbox()->pack_start(*entry, Gtk::PACK_SHRINK);
dialog->set_text("hello world");
dialog->set_size_request(200,100);
dialog->show_all();
而且一切正常