我正在寻找一种可能的方法,只允许在 Gtk::Entry 小部件中输入数字,而不依赖 SpinButtons。问题是,我找到了一个模板(link https://mail.gnome.org/archives/gtkmm-list/2004-May/msg00169.html),但它就是行不通。我可以将它与我的其他代码一起编译,但是如果我想声明一个实例
NumericEntry<int> int_entry(1,0,10);
它告诉我
数字常量前应有“,”或“...”
第二部分是,我不清楚如何打包这个条目,因为我得到了一个
无法转换为小部件
使用时出错
functionname.pack_start(int_entry())
我想我的部分有一个愚蠢的错误(C++ 和 Gtkmm 新手的糟糕组合),所以任何帮助都是值得赞赏的。
只允许数字的一种方法是子类化 Gtk::Entry 并重写 on_insert_text() 虚函数。在该虚函数中,您可以验证输入的文本,并且仅在文本验证时调用基类的 on_insert_text() 。
void NumberEntry::on_insert_text(const Glib::ustring& text, int* position)
{
// allow only numbers to be entered
if (contains_only_numbers(text))
Gtk::Entry::on_insert_text(text, position);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)