Witam po raz kolejny, teraz już piszę z założonego konta :D Postanowiłem pobawić się w odczytywanie znaków, jednak nie jestem w stanie znaleźć błędu jaki popełniam. Program ma za zadanie zmianę napisu "Jakis Napis" na napis "Myszka" jeżeli kliknę na przycisk "Włącz" albo zmianę na napis "Klawiatura" jeśli nacisnę klawisz a. Po uruchomieniu programu po wciśnięciu przycisku napis zmienia się na myszka, ale podczas wciskania klawisza a program nie reaguje.
mainwindow.hpp:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QWidget>
#include <QMainWindow>
#include <QPushButton>
#include <QLabel>
#include <QApplication>
#include <QTextCodec>
#include <QKeyEvent>
#include <QMessageBox>
class MainWindow : public QMainWindow
{
Q_OBJECT
private:
QPushButton *przycisk1;
QLabel *etykieta1;
public:
MainWindow();
public slots:
int funkcja();
protected:
void funkcja1(QKeyEvent *event);
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.hpp"
MainWindow::MainWindow()
{
QTextCodec::setCodecForTr (QTextCodec::codecForName ("Windows-1250"));
przycisk1 = new QPushButton(tr("&Włącz"), this);
przycisk1->setGeometry(5, 30, 100, 30);
etykieta1 = new QLabel(tr("Jakis Napis"), this);
etykieta1->setGeometry(5, 5, 150, 30);
connect(przycisk1, SIGNAL(clicked()), this, SLOT(funkcja()));
setMinimumSize(300, 300);
resize(480, 320);
}
int MainWindow :: funkcja()
{
etykieta1->setText(tr("Myszka"));
}
void MainWindow :: funkcja1(QKeyEvent *event)
{
if(event->key() == Qt::Key_A)
{
etykieta1->setText("Klawiatura");
}
}
main.cpp
#include "mainwindow.hpp"
int main (int argc, char *argv[])
{
QApplication app(argc, argv);
MainWindow window;
window.show();
return app.exec();
}