gpt4 book ai didi

c++ - 在 Gtk::Entry 小部件中强制输入数字

转载 作者:太空狗 更新时间:2023-10-29 21:48:37 24 4
gpt4 key购买 nike

我正在寻找一种可能的方法,只允许在 Gtk::Entry 小部件中输入数字,而不依赖于 SpinButtons。问题是,我为此找到了一个模板 ( link ),但它不起作用。我可以将它与我的其他代码一起编译,但是如果我想用

声明一个实例
NumericEntry<int> int_entry(1,0,10);

它告诉我

expected ‘,’ or ‘...’ before numeric constant

第二部分是,我不清楚如何打包这个条目,因为我得到了一个

can't convert to widget

使用时出错

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);
}

关于c++ - 在 Gtk::Entry 小部件中强制输入数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10279579/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com