Создание своего обработчика событий

Создадим прототип своего слота, для этого откроем файл mainwindow.h

и после сток:

private: Ui::MainWindow *ui; добавим public slots: void MyEventHandler();

После этого файл mainwindow.h должен выглядеть так:

  #ifndef MAINWINDOW_H#define MAINWINDOW_H #include <QMainWindow> namespace Ui {class MainWindow;} class MainWindow: public QMainWindow{ Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~ MainWindow (); private: Ui::MainWindow *ui; public slots: void MyEventHandler(); }; #endif // MAINWINDOW_H

Создадим тело слота, для этого откроем файл mainwindow.cpp и в его конец добавим:

// тело слота (т.е. функции обработки сигнала)void MainWindow::MyEventHandler(){ ui->lineEdit_2->setText(ui->lineEdit_1->text());

}

Свяжем сигнал со слотом, для этого в конец конструктора MainWindow (файл mainwindow.cpp) добавим следующие строки:

// свяжем сигнал со слотом

QObject::connect(ui->pushButtonCopy, SIGNAL(clicked()),this, SLOT(MyEventHandler()));

После всех изменений файл mainwindow.cpp должен иметь вид:

  #include "mainwindow.h"#include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); // изменение свойства text объекта labelResult ui->labelResult->setText("Результат!"); // свяжем сигнал со слотом QObject::connect(ui->pushButtonCopy, → SIGNAL(clicked()),this, SLOT(MyEventHandler()));} MainWindow::~ MainWindow (){ delete ui;} // тело слота (т.е. функции обработки сигнала)void MainWindow::MyEventHandler(){ ui->lineEdit_2->setText(ui->lineEdit_1->text());}

Проверяем текст программы, компилируем, запускаем. В поле редактирования Источник вводим любой текст и нажимаем кнопку «Копировать». Текст из поля источник должен скопиться в поле редактирования получатель.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: