void TCentralWidget::ButtonClickedSlot(QString& sTag)
{
QString sMessage = trUtf8("Нажата кнопка номер ") + sTag;
QMessageBox::information(this, "Buttons", sMessage); // Сообщение с тегом кнопки
sMessage = "<p align=Center>" + trUtf8("Последней была нажата кнопка номер ") + sTag + "</p>";
pTextLabel->setText(sMessage); // Сообщение на ярлыке
}
void __fastcall TMainForm::Button1Click(TObject *Sender)
{
TButton* pButton = (TButton*)Sender;
AnsiString sTag = IntToStr(pButton->Tag); // Преобразуем целочисленную переменную в строку
AnsiString sMessage = "Нажата кнопка номер " + sTag;
ShowMessage(sMessage); // Сообщение с тегом кнопки
sMessage = "Последней была нажата кнопка номер " + sTag;
TextLabel->Caption = sMessage; // Сообщение на ярлыке
}
protected:
void keyPressEvent(QKeyEvent* pKeyEvent);
void TCentralWidget::keyPressEvent(QKeyEvent* pKeyEvent)
{
switch(pKeyEvent->key())
{
case Qt::Key_Home:
{
QMessageBox::information(0, "Buttons", QObject::trUtf8("Нажата клавиша "Home""));
break;
}
case Qt::Key_End:
{
QMessageBox::information(0, "Buttons", QObject::trUtf8("Нажата клавиша "End""));
break;
}
case Qt::Key_Prior:
{
QMessageBox::information(0, "Buttons", QObject::trUtf8("Нажата клавиша "Страница вверх""));
break;
}
case Qt::Key_Next:
{
QMessageBox::information(0, "Buttons", QObject::trUtf8("Нажата клавиша "Страница вниз""));
break;
}
default:
{
QMessageBox::warning(0, "Buttons", QObject::trUtf8("Неизвестная клавиша!"));
}
}
pKeyEvent->accept();
}
// Файл TCentralWidget.h
//--------------------------------------------------------
#ifndef _TCentralWidget_h_
#define _TCentralWidget_h_
//--------------------------------------------------------
#include <qwidget.h>
//--------------------------------------------------------
class QVBoxLayout;
class QGridLayout;
class TButton;
class QHBoxLayout;
class QLabel;
class QKeyEvent;
//--------------------------------------------------------
class TCentralWidget : public QWidget
{
Q_OBJECT
public:
TCentralWidget(QWidget* pParent = 0, const char* psName = 0, WFlags Flag = 0);
~TCentralWidget();
private:
QVBoxLayout* pMainLayout;
QGridLayout* pButtonsLayout;
QHBoxLayout* pTextLayout;
TButton* pButton1;
TButton* pButton2;
TButton* pButton3;
TButton* pButton4;
TButton* pButton5;
TButton* pButton6;
QLabel* pTextLabel;
protected:
void keyPressEvent(QKeyEvent* pKeyEvent);
protected slots:
void ButtonClickedSlot(QString&);
};
//--------------------------------------------------------
#endif
// Файл TCentralWidget.cpp
//--------------------------------------------------------
#include "TCentralWidget.h"
#include "TButton.h"
//--------------------------------------------------------
#include <qlayout.h>
#include <qlabel.h>
#include <qmessagebox.h>
#include <qevent.h>
//--------------------------------------------------------
TCentralWidget::TCentralWidget(QWidget* pParent, const char* psName, WFlags Flag)
: QWidget(pParent, psName, Flag)
{
pMainLayout = new QVBoxLayout(this, 5, 5, "MainLayout");
pButtonsLayout = new QGridLayout(pMainLayout, 2, 3, 5, "ButtonsLayout");
pButton1 = new TButton(this);
pButton1->sTag = "1";
pButton1->setText(trUtf8("Кнопка 1"));
pButtonsLayout->addWidget(pButton1, 0, 0);
pButton2 = new TButton(this);
pButton2->sTag = "2";
pButton2->setText(trUtf8("Кнопка 2"));
pButtonsLayout->addWidget(pButton2, 0, 1);
pButton3 = new TButton(this);
pButton3->sTag = "3";
pButton3->setText(trUtf8("Кнопка 3"));
pButtonsLayout->addWidget(pButton3, 0, 2);
pButton4 = new TButton(this);
pButton4->sTag = "4";
pButton4->setText(trUtf8("Кнопка 4"));
pButtonsLayout->addWidget(pButton4, 1, 0);
pButton5 = new TButton(this);
pButton5->sTag = "5";
pButton5->setText(trUtf8("Кнопка 5"));
pButtonsLayout->addWidget(pButton5, 1, 1);
pButton6 = new TButton(this);
pButton6->sTag = "6";
pButton6->setText(trUtf8("Кнопка 6"));
pButtonsLayout->addWidget(pButton6, 1, 2);
pTextLayout = new QHBoxLayout(pMainLayout, 5, "TextLayout");
pTextLabel = new QLabel(this, "TextLabel");
pTextLabel->setText(trUtf8("<p align=Center>Нажмите кнопку...</p>"));
pTextLayout->addWidget(pTextLabel);
connect(pButton1, SIGNAL(clicked(QString&)), this, SLOT(ButtonClickedSlot(QString&)));
connect(pButton2, SIGNAL(clicked(QString&)), this, SLOT(ButtonClickedSlot(QString&)));
connect(pButton3, SIGNAL(clicked(QString&)), this, SLOT(ButtonClickedSlot(QString&)));
connect(pButton4, SIGNAL(clicked(QString&)), this, SLOT(ButtonClickedSlot(QString&)));
connect(pButton5, SIGNAL(clicked(QString&)), this, SLOT(ButtonClickedSlot(QString&)));
connect(pButton6, SIGNAL(clicked(QString&)), this, SLOT(ButtonClickedSlot(QString&)));
}
//--------------------------------------------------------
TCentralWidget::~TCentralWidget()
{
}
//--------------------------------------------------------
void TCentralWidget::ButtonClickedSlot(QString& sTag)
{
QString sMessage = trUtf8("Нажата кнопка номер ") + sTag;
QMessageBox::information(this, "Buttons", sMessage);
sMessage = "<p align=Center>" + trUtf8("Последней была нажата кнопка номер ") + sTag + "</p>";
pTextLabel->setText(sMessage);
}
//--------------------------------------------------------
void TCentralWidget::keyPressEvent(QKeyEvent* pKeyEvent)
{
switch(pKeyEvent->key())
{
case Qt::Key_Home:
{
QMessageBox::information(0, "Buttons", QObject::trUtf8("Нажата клавиша "Home""));
break;
}
case Qt::Key_End:
{
QMessageBox::information(0, "Buttons", QObject::trUtf8("Нажата клавиша "End""));
break;
}
case Qt::Key_Prior:
{
QMessageBox::information(0, "Buttons", QObject::trUtf8("Нажата клавиша "Страница вверх""));
break;
}
case Qt::Key_Next:
{
QMessageBox::information(0, "Buttons", QObject::trUtf8("Нажата клавиша "Страница вниз""));
break;
}
default:
{
QMessageBox::warning(0, "Buttons", QObject::trUtf8("Неизвестная клавиша!"));
}
}
pKeyEvent->accept();
}
//--------------------------------------------------------
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.