Пробовал создавать "холостной" QAction, но это не работает
Виджет с двумя shortcut'ами (QT4)
Модератор: Модераторы разделов
-
Assuri
- Сообщения: 678
- Статус: #include <brain.h>
- ОС: Fedora 12
Виджет с двумя shortcut'ами
У меня есть кнопка, шорткатом которой является "Return", но мне надо еще и "Enter". Как мне это сделать?
Пробовал создавать "холостной" QAction, но это не работает
Пробовал создавать "холостной" QAction, но это не работает
-
nonstop
- Сообщения: 132
- ОС: Slackware
Re: Виджет с двумя shortcut'ами
SCWindow.h
SCWindow.cpp
Код: Выделить всё
#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