Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
QtGUI导致CPU开销_Qt_Overhead - Fatal编程技术网

QtGUI导致CPU开销

QtGUI导致CPU开销,qt,overhead,Qt,Overhead,我的代码看起来像这样。 用户按下一个键,gui被更新。 但是,当用户连续按一个键而不释放时,CPU会受到压力,系统会冻结,直到GUI完成所有命令的任务 bool Reproductor::eventFilter(QObject * , QEvent * event) { if(event->type() == QEvent::KeyPress) { int pressed_key_now = static_cast<QKeyEvent*>(ev

我的代码看起来像这样。 用户按下一个键,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;
            }       
bool复制器::事件过滤器(QObject*,QEvent*事件)
{
如果(事件->类型()==QEvent::按键)
{
int pressed_key_now=static_cast(事件)->key();
开关(现在按下按键)
{
案例Qt::键_星号:
{
//在sqlite中搜索更新gui

g_next_page_on_list_themes_down();//一种轻松解决这一问题的方法是对按键释放事件而不是按键事件做出反应

如果由于某种原因无法实现,您可以自己保留一个标志,以指示用户是否同时释放了钥匙(例如,识别新的“新”按键事件)