将 Gtk::Entry 添加到 Gtk::D ialog
Adding Gtk::Entry to Gtk::Dialog
我正在向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 **: Attempting to add a widget with type gtkmm__GtkEntry to a gtkmm__GtkDialog, but as a GtkBin subclass a gtkmm__GtkDialog can only contain one widget at a time; it already contains a widget of type GtkVBox
帮我解决这个问题。
Gtk::Dialog
已经添加了 VBox。查看 Gtk::D ialog 类的源文件,我发现了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 CSS style_context
- 如何在GTK程序运行时禁用屏幕保护程序/电源管理/屏幕消隐
- 如何使用 GTK 3 正确设置默认文本
- Gtkmm 会不断检查 Gtk::日历上的所选日期是否发生变化
- 使用 Gtkmm 以编程方式选择 Gtk::TextView 中的文本
- 是否可以编译 Gtk+ 应用程序以同时在 Gtk 2 和 3 上运行
- GTK 最大化表单 C++
- GTK:完全摆脱系统主题/CSS
- GTK C++:找不到信号处理程序 您是否使用 -rdynamic 进行了编译?
- 如何从 Gtk::窗口调用派生对象的析构函数
- Gtk::带有set_icon_name的窗口图标集在 wayland 上不起作用
- GTK 3 C++按钮中带有标签的图标
- Gtkmm:创建一个Gtk::ComboBox,其中列出Gtk::DrawingArea
- 用GTK创建逻辑门模拟器,如何制作放置区域
- 使用 GTK 将 EGL 图像渲染到帧缓冲区
- 在 Win32 应用程序中承载 GTK+3 上下文
- 实时移动GTK+窗口
- 基于人脸检测坐标的GTK+移动窗口
- 如何在Visual Studio c++ for Linux平台中编写GTK应用程序
- 将 Gtk::Entry 添加到 Gtk::D ialog