我想禁用对整个应用程序的单击,同时从串行连接接收数据。我想用一个消息框在屏幕上打印信息,并在一定时间内关闭点击,我怎么做呢?
发布于 2022-06-23 07:18:41
抓取鼠标获取小部件或qml的setKeepMouseGrab可能有用。添加一个获取鼠标事件的虚拟小部件。当你开始接收数据时,让它抓取事件。
发布于 2022-06-23 07:18:04
“锁定”应用程序从来都不是一个好主意,因为您的操作系统会认为应用程序没有响应能力,并强行将其击落。
您想要的是一个模态对话框(它运行在主线程上),它有一个进度指示器,没有可点击的接口。
实现这一目标的一个非常基本的代码是:
void startTransfer()
{
ProgressBarDialog dlg; //Inherits from QDialog
//Create asynchronous transfer task.
dlg.setModal(true);
//Connect task and modal dialog
dlg.exec();
}在传输运行时,exec将“阻止”与其他窗口的所有交互。实际上,只有在对话框完成其工作之后,exec才会返回。
https://stackoverflow.com/questions/72725906
复制相似问题