Виджет с двумя shortcut'ами (QT4)

Модератор: Модераторы разделов

Аватара пользователя
Assuri
Сообщения: 678
Статус: #include <brain.h>
ОС: Fedora 12

Виджет с двумя shortcut'ами

Сообщение Assuri »

У меня есть кнопка, шорткатом которой является "Return", но мне надо еще и "Enter". Как мне это сделать?

Пробовал создавать "холостной" QAction, но это не работает :(
Спасибо сказали:
Аватара пользователя
nonstop
Сообщения: 132
ОС: Slackware

Re: Виджет с двумя shortcut'ами

Сообщение nonstop »

SCWindow.h

Код: Выделить всё

#ifndef SCWINDOW_H
#define SCWINDOW_H

#include <QMainWindow>

class QPushButton;
class QAction;
class SCWindow
    : public QMainWindow
{
    Q_OBJECT
public:
    SCWindow();
    virtual ~SCWindow();
private slots:
    void click();
private:
    QPushButton* m_btn;

    QAction *m_act1, *m_act2;
};

#endif /* SCWINDOW_H */

SCWindow.cpp

Код: Выделить всё

#include <QtGui>
#include "SCWindow.h"

SCWindow::SCWindow()
{
    QWidget *centralWidget = new QWidget;
    QVBoxLayout *mainLayout = new QVBoxLayout;

    m_btn = new QPushButton("Push me");
    mainLayout->addWidget(m_btn, 1);
    centralWidget->setLayout(mainLayout);

    setCentralWidget(centralWidget);
    setWindowTitle(tr("Qt shortcuts"));
    setMinimumSize(160, 160);

    connect(m_btn, SIGNAL(clicked(bool)), this, SLOT(click()));

    m_act1 = new QAction(this);
    m_act1->setShortcut(QKeySequence("Ctrl+1"));
    connect(m_act1, SIGNAL(triggered()), this, SLOT(click()));

    m_act2 = new QAction(this);
    m_act2->setShortcut(QKeySequence("Ctrl+2"));
    connect(m_act2, SIGNAL(triggered()), this, SLOT(click()));

    centralWidget->addAction(m_act1);
    centralWidget->addAction(m_act2);
}

SCWindow::~SCWindow()
{
}

void SCWindow::click()
{
    QMessageBox::information(this, "Hi", "click", QMessageBox::Ok);
}

int main(int ac, char *av[])
{
    QApplication app(ac, av);

    SCWindow main;
    main.show();

    return app.exec();
}
slackware - linux for human brains
Спасибо сказали: