好吧,那我改成这样比较典型:
QWidget *w = new QWidget;
//button1
QPushButton *b1 = new QPushButton(w);
connect(b1, SIGNAL(clicked()), w, SLOT(close());
b->setShortcut(QKeySequence(Qt::Key_1));
//button2
QPushButton *b2 = new QPushButton(w);
connect(b2 , SIGNAL(clicked()), w, SLOT(deleteLater());
b->setShortcut(QKeySequence(Qt::Key_2));
我说的同时是操作角度上的同时,人为的同时。这时候两个slot都会触发,而且可以同时看到两个按钮被按下的动作,然后两个槽都会被执行。你可以试试连接b2的槽改为能打开一个QMessageBox,这时候你有可能看到窗口已经关闭,但是QMessageBox却挂在那里,这显然是很奇怪的。