- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在我的 MyApplication
中捕捉一个关闭事件继承自 QApplication
的实例或在我的WindowQML
继承自 QQuickView
的实例.目标是在真正关闭应用程序之前要求确认退出。
在我的应用程序依赖 QMainWindow
之前我在哪里实现了closeEvent()
像这样的方法:
// MainWindow inherits from QMainWindow
void MainWindow::closeEvent(QCloseEvent *event)
{
event->ignore();
confirmQuit(); // ask for confirmation first
}
WindowQML
继承自
QQuickView
永远不要进入
closeEvent()
方法。然后我尝试重载
event()
像这样的方法:
// WindowQML inherits from QQuickView
bool WindowQML::event(QEvent *event)
{
if(event->type() == QEvent::Close)
{
qDebug() << "CLOSE EVENT IN QML WINDOW";
}
}
MyApplication
中的 close 事件。像这样:
// We need to check for the quit event to ask confirmation in the QML view
bool MyApplication::event(QEvent *event)
{
bool handled = false;
switch (event->type())
{
case QEvent::Close:
qDebug() << "Close event received";
event->ignore(); // mandatory?
handled = true;
Q_EMIT quitSignalReceived();
break;
default:
qDebug() << "Default event received";
handled = QApplication::event(event);
break;
}
qDebug() << "Event handled set to : " << handled;
return handled;
}
quitSignalReceived()
被正确发出,但事件没有被正确“阻止”,我的应用程序仍然关闭。
QQuickView
的关闭事件?实例? MyApplication::event()
最好的做法是什么?为什么我需要调用event->ignore()
这里?我原以为返回 true
就足够了。 最佳答案
不知道为什么QWindow
没有closeEvent
便利事件处理程序。看起来是个错误,遗憾的是在 Qt 6.0 之前无法添加。无论如何,任何 QWindow 肯定会得到 QCloseEvent
当它关闭时。所以只需覆盖event
并在那里执行您的事件处理。
证明:
#include <QtGui>
class Window : public QWindow
{
protected:
bool event(QEvent *e) Q_DECL_OVERRIDE
{
int type = e->type();
qDebug() << "Got an event of type" << type;
if (type == QEvent::Close)
qDebug() << "... and it was a close event!";
return QWindow::event(e);
}
};
int main(int argc, char **argv)
{
QGuiApplication app(argc, argv);
Window w;
w.create();
w.show();
return app.exec();
}
Got an event of type 17
Got an event of type 14
Got an event of type 13
Got an event of type 105
Got an event of type 13
Got an event of type 206
Got an event of type 206
Got an event of type 8
Got an event of type 207
Got an event of type 19
... and it was a close event!
Got an event of type 18
关于qml - 在关闭 QQuickView 或 QApplication 之前询问确认,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17593008/
我有一个名为 Driver 的表。日期数据类型中有一个名为birthDate 的列。输入为“1995-05-18”YEAR-MONTH-DATE 我需要查询列出 1950 年、1960 年、1970
我只是想知道是否所有浏览器都支持 DELETE 语句,例如: delete myObj; 我只想 100% 确定是否所有浏览器都支持这个?还有没有浏览器或移动电话不支持? 最佳答案 Mozilla's
我想这样做,但到目前为止,我所拥有的只是: print("Will you go out with me?") 我希望代码能够正常工作,以便人们可以回答“是/否”,如果回答是"is",则将返回一条消息
检查 SPARQL 资源是否存在的好方法是什么? 我正在寻找相当于向例如发射 HTTP GET 请求的方法http://dbpedia.org/resource/Game_of_Thrones并检查
this is my code and in the last part,msgrecv does not accept the messages from the queue accourding
我正在使用 TinyMCE 5。我定义了一个 image_list,我需要在页面其他地方操作图像时动态更改它。为此,我先调用 tinymce.remove(),然后调用 tinyme.init(),使
我想在我的 C 程序中使用以下脚本。用户将能够输入IP。之后我想确定输入是否正确并询问用户 char eingabe; printf("Is that the right input? y/n: ")
我有一个 Java 源代码,我需要它来查询和应用安全策略 [例如申请CWE] 我有几个想法,首先是使用 AST,然后遍历树。其他包括使用正则表达式。除了 AST 或正则表达式之外,还有其他选项可供我用
有没有办法以编程方式询问 c3p0 有多少连接正在使用,或者在池耗尽时记录。 最佳答案 如上面 Austin 评论引用的 URL 所示,您可以使用 JMX 来检查和修改正在运行的 c3p0 Poole
我的 SQL 表遇到了另一个问题,但这次我有更多的表链接在一起。我意识到了什么以及我陷入困境的地方: 我有关于工作、工资、员工的表格。 我已经按照以下条件进行了查询: 我公司工资最高的员工: sele
这个问题不太可能对任何 future 的访客有帮助;它只与一个较小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于全世界的互联网受众。如需帮助使此问题更广泛适用,visit the
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 8 年前。 Improve this qu
询问 MethodInfo 是否接受参数的最有效方法是什么?如果接受,有多少? 我目前的解决方案是:methodInfo.GetParameters().Any() 和 methodInfo.GetP
我为我的应用程序添加了一个文本到语音搜索器,这样我就可以用语音过滤列表,一切正常,唯一的问题是我必须从应用程序的权限选项选项卡中手动接受权限。 我正在使用 speech_recognition为它打包
我有一个使用 FFMPEG 的 sh 脚本从 RTSP 流中拍摄一张照片。 如果连接时间过长,有一个 timeout -stimeout 来终止连接。 (-timeout 是不可能的)。大多数 IP
基本上我想要的是不必每次在 git 中提交时都输入密码。 在寻找解决方案时,我发现了 this . 所以它告诉我在配置文件中设置 default-cache-ttl 和 max-cache-ttl 。
如果 id="e2"被 id="e1"填充,如何填充 id="e3"? 在这里检查实时代码,http://jsfiddle.net/eHEtV/ jQuery(document).ready(func
我有以下代码,它是 PHP 中将用户添加到数据库的函数的一部分。它将用户添加到数据库中。 if($user != '' && $pass != ''){ $new_name_q
我如何实现这段代码: $("ID5").click(function{ $("#Id1,#Id2" + this).hide(); }); 最佳答案 我认为你需要.add() ,它将元素添加到匹
这个问题在这里已经有了答案: Java8 - how to know if daylight savings is on now (1 个回答) 关闭 6 年前。 如何询问 java.time.Zo
我是一名优秀的程序员,十分优秀!