如何将主 GUI 窗口中的键 enterPressed(( 事件连接到特定按钮(也在主 GUI 中(?
用例:
用户启动应用程序,输入一些数据并按Enter键,将被绕过"开始"按钮被单击。
我的想法:
connect(this, SIGNAL(returnPressed()), ui.btn_Start, SLOT(clicked()));
class ClassA : QMainWindow
{
Q_OBJECT
// ...
private:
Ui::ClassAClass ui;
// ...
};
您可以将信号连接到其他信号:
connect(this, &MainWindow::returnPressed, ui.btn_Start, &QPushButton::released);
仅此而已。信号被转发到QPushButton
的实例信号发出它,因此连接到它的任何内容都将被调用。此外(您谈论事件(在重新实现QMainWindow::keyPressEvent
class MainWindow : public QMainWindow
{
//...
signals:
void returnPressed() const;
protected:
void keyPressEvent(QKeyEvent *event);
};
void MainWindow::keyReleaseEvent(QKeyEvent *event)
{
if(event->key() == Qt::Key_Return)
emit returnPressed();
QMainWindow::keyReleaseEvent(event);
}