gpt4 book ai didi

c++ - Qt 如何找出 closeEvent(QCloseEvent *event) 触发的位置

转载 作者:行者123 更新时间:2023-11-30 01:27:24 25 4
gpt4 key购买 nike

我的主窗口中有 2 个触发器1.从完全关闭应用程序的菜单2. 从窗口 X 按钮忽略并隐藏窗口。我正在使用这个 SIGNAL/SLOTS我怎么知道它是从哪里触发的?

closeEvent中:

connect(ui->actionQuit, SIGNAL(triggered()),this, SLOT(CloseWin()));

void MainWindow::CloseWin()
{

close();

}
// triggered from the ui->actionQuit amd from the X button

void MainWindow::closeEvent(QCloseEvent *event)
{

// how can i know from where its bean triggered?
hide();
event->ignore();

}

最佳答案

您始终可以通过调用 QObject::sender() 知道是谁“触发”了事件 - http://developer.qt.nokia.com/doc/qt-4.8/qobject.html#sender .请注意,仅当在调用的 SLOT 上调用此方法时,有效的返回值才可用。

编辑:

如果你要将多个信号重新连接到一个插槽,你还应该考虑使用信号映射器,这个QQ中有解释: http://doc.qt.nokia.com/qq/qq10-signalmapper.html

关于c++ - Qt 如何找出 closeEvent(QCloseEvent *event) 触发的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8969396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com