zoukankan      html  css  js  c++  java
  • QTableWidget界面有数据之后鼠标点击无响应界面无响应

    1.问题:QTableWidget上出现数据之后,界面无响应,鼠标点击没有响应,但是还是可以正常接收数据,连关闭按钮都无法关闭,必须通过杀死进程来关闭程序。有的电脑是无响应,有的电脑又可以。

    2.分析:界面无响应的原因:

    (1)程序崩溃卡死,点击会无响应,但是数据还在正常接收,说明不是,排除

    (2)界面上出现了模态对话框,只有关闭了模态对话框,才可以点击其他界面。而且程序能正常执行。只是界面无法响应。

    3.排查步骤

    查看数据显示中出现的窗口,特别是自定义的窗口。我在QTableWidget添加数据,operation一栏是自定义的一个widget类,class QTriggerResourceWnd : public QWidget。然后调用setCellWidget函数添加自定义的窗口widget。

    QTriggerResourceWnd * pTrgger = new QTriggerResourceWnd();

    ui.tableWidget->setCellWidget(step, 8, pTrgger);

    通过注释掉这一行ui.tableWidget->setCellWidget(step, 8, pTrgger);  可以正常响应,说明QTriggerResourceWnd 是模态对话框。

    所以讲构造函数中添加一行代码设置为非模态:setWindowModality(Qt::NonModal);

    4.结论:由于系统环境的原因,有的电脑默认Qwidget为模态对话框,有的默认Qwidget为非模态对话框,所以最好在代码中设置setWindowModality(Qt::NonModal);将窗口强制设置为非模态,这样在不同的系统环境中都会以非模态窗口显示,不会出现界面无响应的情况。

    自己开发了一个股票智能分析软件,功能很强大,需要的点击下面的链接获取:

    https://www.cnblogs.com/bclshuai/p/11380657.html

  • 相关阅读:
    MySql触发器简介
    MySQL存储过程
    MySQL自定义函数
    MySql视图
    MySQL增删改
    MySQL内联和外联查询
    MySql运算符
    SQL scripts
    Adding Swagger to Web API project
    Unable to get setting value Parameter name: profileName
  • 原文地址:https://www.cnblogs.com/bclshuai/p/11344800.html
Copyright © 2011-2022 走看看