gtkmm键盘事件跳过

问题描述 投票:0回答:1

在某些情况下是否可以取消key_release事件?我尝试更好地解释...我希望在条目中只能插入数字,如果我插入另一个字符,将被跳过。

。h文件

bool on_value_change(GdkEventKey* key_event);

。c ++文件

 m_TxtDiversi1->signal_key_release_event().connect(sigc::mem_fun(*this, &MainWindow::on_value_change));

bool MainWindow::on_value_change(GdkEventKey* key_event)
{

    if((key_event->keyval >= 48 && key_event->keyval <= 57) || (key_event->keyval >= 65456 && key_event->keyval <= 65465) || key_event->keyval == 65454)
    {
        std::cout << "1ui" << std::endl;
        return true;
    }

    return false;
}

有人可以帮我吗?预先感谢。

c++ gtkmm
1个回答
0
投票

我找到了解决方案

    m_TxtDiversi1->signal_key_press_event().connect(sigc::mem_fun(*this, &MainWindow::on_value_change), false);

    bool MainWindow::on_value_change(GdkEventKey* key_event)
    {
        if((key_event->keyval >= 48 && key_event->keyval <= 57) || (key_event->keyval >= 65456 && key_event->keyval <= 65465) || key_event->keyval == 65454)
        {
            std::cout << "1ui" << std::endl;

            return false;
        }

        return true;
     }
© www.soinside.com 2019 - 2024. All rights reserved.