【问题标题】:Qt GUI causes CPU overheadQt GUI 导致 CPU 开销
【发布时间】:2020-04-15 04:37:53
【问题描述】:

我的代码如下所示。 用户按下一个键并更新 gui。 但是,当用户连续按下一个键而不松开时,CPU 会受到压力并且系统会死机,直到 GUI 完成所有命令的任务。

bool Reproductor::eventFilter(QObject * , QEvent * event)
{
    if(event->type() == QEvent::KeyPress)
    {

        int pressed_key_now = static_cast<QKeyEvent*>(event)->key();


        switch (pressed_key_now)
        {

            case Qt::Key_Asterisk:
            {
                // search in sqlite an update gui
                g_next_page_on_list_themes_down(); // <--- very heavy

                break;
            }       

这是函数分析器和 CPU 开销的视图,这是连续按键导致的。

是QEventLoop需要保护还是改变?

【问题讨论】:

    标签: qt overhead


    【解决方案1】:

    轻松解决此问题的一种方法是对按键释放事件而不是按键事件做出反应。

    如果由于某种原因无法做到这一点,您始终可以自己保留一个标志,以指示用户是否在此期间释放了按键(例如,识别新的“新鲜”按键事件)。

    【讨论】:

      猜你喜欢
      • 2013-05-04
      • 2011-08-19
      • 2022-08-11
      • 2021-11-30
      • 1970-01-01
      • 2016-06-01
      • 1970-01-01
      • 2013-07-21
      • 2014-08-29
      相关资源
      最近更新 更多