在 Qt 中,对应于用户单击窗口框架的“X”(关闭)按钮的事件的插槽是什么,即这个按钮:
如果没有这个插槽,在用户按下关闭按钮后,还有其他方法可以触发功能吗?
原文由 Shravan 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 Qt 中,对应于用户单击窗口框架的“X”(关闭)按钮的事件的插槽是什么,即这个按钮:
如果没有这个插槽,在用户按下关闭按钮后,还有其他方法可以触发功能吗?
原文由 Shravan 发布,翻译遵循 CC BY-SA 4.0 许可协议
嗯,我明白了。一种方法是在类定义中覆盖 QWidget::closeEvent
(QCloseEvent *event)
方法,并将代码添加到该函数中。例子:
class foo : public QMainWindow
{
Q_OBJECT
private:
void closeEvent(QCloseEvent *bar);
// ...
};
void foo::closeEvent(QCloseEvent *bar)
{
// Do something
bar->accept();
}
原文由 Shravan 发布,翻译遵循 CC BY-SA 3.0 许可协议
3 回答2k 阅读✓ 已解决
4 回答4.4k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
如果您有
QMainWindow
您可以覆盖closeEvent
方法。如果您将
QDialog
子类化,则closeEvent
将不会被调用,因此您必须覆盖reject()
: