Создадим прототип своего слота, для этого откроем файл 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());} |
Проверяем текст программы, компилируем, запускаем. В поле редактирования Источник вводим любой текст и нажимаем кнопку «Копировать». Текст из поля источник должен скопиться в поле редактирования получатель.