Sleep() 函数之前的代码不起作用
The code before Sleep() function doesn't work
我有一个简单的Qt应用程序-一个在中有文本区域(QTextEdit)的窗口。我将一些文本打印到该区域,按下按钮并根据键入的内容获得响应。这是负责对特定输入必须执行的操作的插槽。布洛克其他人做得很好。但if有问题。如果它输入了"请关闭",我希望它关闭应用程序。在关闭之前,它应该更改文本区域中的文本。因此,在关闭之前需要延迟。我试着用一个循环来实现它——不起作用,它很难思考,然后在没有显示消息的情况下关闭。
如果我使用Sleep(),它也会这样做——在不更改文本区域的情况下等待并关闭。为什么会发生这种情况?setText()命令在Sleep()函数之前,为什么不在Sleep()函数前实现呢?
void Layout::text_slot()
{
QString s=m_texter->toPlainText();
if (s=="close it, please")
{
m_texter->setText("OK, my Lord!");
//for (int i=0;i<10000;i++)
//for (int j=0;j<10000;j++)
Sleep(1000*10);
QApplication::quit();
}
else
{
m_texter->setText("What 're you saying?");
}
}
使用QTimer::singleShot
等待
例如
void Layout::text_slot()
{
QString s=m_texter->toPlainText();
if (s=="close it, please")
{
m_texter->setText("OK, my Lord!");
// TODO: disable any user interaction here
// e.g. disable text input field
QTimer::singleShot(1000*10, qApp, SLOT(quit()));
}
else
{
m_texter->setText("What 're you saying?");
}
}
相关文章:
- 为什么这段代码不起作用,我该如何解决?
- 为什么这些完全相似的代码不起作用?
- 我不明白为什么我的代码不起作用并且需要更长的时间来运行
- 我正在尝试解决一个需要数组总和值但代码不起作用的问题,我想做这样的事情
- 注释一行使代码工作,而没有它,代码不起作用
- 我的C++合并排序代码不起作用。我在这里错过了什么?
- C ++函数重新定义(代码不起作用 - 逻辑错误)
- 试图找到一个数字的平方根,但代码不起作用。C++
- 字符串代码不起作用
- 我正在努力在随机数组中查找最小值,有人知道为什么我的代码不起作用?C++
- 从 C++ 转换的 C# 代码不起作用
- 有人可以解释我,为什么我的代码不起作用吗?
- 当我使用长整型时,我的代码不起作用,它与 int 一起工作得很好
- 无法在控制面板中创建轨道栏.示例代码不起作用
- CUDA我的共享内存代码不起作用,我缺少什么
- 为什么 C++ 中的 shell 脚本代码不起作用?
- 为什么C++代码不起作用(strncpy_s)?
- 模板函数声明为 void - 代码不起作用?
- 无法弄清楚为什么这个Arduino代码不起作用?
- "check if member exists using enable_if"中修改的代码不起作用