آموزش محیط Qt – QPushButton – سیگنالها و اسلاتها
هر کلید از کلاس QPushButton دارای سیگنال هایی به شرح زیر هستند که اگر بر روی هر کلید راست کلیک کرده و گزینه go to slot را انتخاب کنیم پنجره زیر را مشاهده میکنیم .
برای این برنامه یک پروژه جدید با نام MRZX_ir ایجاد کنید و نام کلاس اصلی آن را zxMain بگذارید .سه کلید به فرم طراحی اصلی آن اضافه کنید و اسم آن ها را btn_1 , btn_2 , btn_3 بگذارید.
در محیط Qt هر رویدادی که اتفاق بیقتد را اصلاحا یک Signal می گوید و هر عملیاتی که در پاسخ به آن سینگنال انجام می شود را یک Slot میگوییم.
پر کاربردترین سیگنال در کلید ها همان سیگنالی است که میگویند کاربر بروی کلید کلیک کرده است .اگر در پنجره باز شده گزینه clicked() را انتخاب کنم.
به کلاس zxMain خطوط زیر اضافه شده است.که نشان دهنده یک متد خصوصی جدید به نام on_btn_1_clicked می باشد.
private slots:
void on_btn_1_clicked();
و در فایل zxMain.cpp آن متد را پیاده سازی میکنیم.برای مثال در اینجا یک پیغام نمایش میدهیم.
zxMain.h
#ifndef ZXMAIN_H
#define ZXMAIN_H
#include <QMainWindow>
namespace Ui {
class zxMain;
}
class zxMain : public QMainWindow
{
Q_OBJECT
public:
explicit zxMain(QWidget *parent = 0);
~zxMain();
private slots:
void on_btn_1_clicked();
private:
Ui::zxMain *ui;
};
#endif // ZXMAIN_H
zxMain.cpp
#include "zxmain.h"
#include "ui_zxmain.h"
#include <QMessageBox>
zxMain::zxMain(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::zxMain)
{
ui->setupUi(this);
}
zxMain::~zxMain()
{
delete ui;
}
void zxMain::on_btn_1_clicked()
{
QMessageBox::information(this,"mrzx.ir","شما بر روی کلید یک کلیک کردید.");
}
نکته : جهت استفاده از نسخه سی پلاس پلاس ۱۱ کد زیر را در فایل MRZX_ir.pro اضافه میکنیم.
CONFIG += c++11
ادامه دارد …
دیدگاهتان را بنویسید