//my_dialog.h
#ifndef MY_DIALOG_H
#define MY_DIALOG_H
#include <QDialog>
namespace Ui {
class My_Dialog;
}
class My_Dialog : public QDialog
{
// Q_OBJECT宏的作用是启动Qt元对象系统的一些特性(如支持信号和槽),必须放到类定义的私有区
Q_OBJECT
public:
explicit My_Dialog(QWidget *parent = 0);
~My_Dialog();
private slots:
void on_countButton_clicked();
void showArea();
private:
Ui::My_Dialog *ui;
};
#endif // MY_DIALOG_H
//my_dialog.cpp
#include "my_dialog.h"
#include "ui_my_dialog.h"
#include <QDebug>
const static double PI=3.1416;
My_Dialog::My_Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::My_Dialog)
{
ui->setupUi(this);
//信号和槽相连
connect(ui->calculateButton,SIGNAL(clicked()),this,SLOT(showArea()));
}
My_Dialog::~My_Dialog()
{
delete ui;
}
//槽函数
void My_Dialog::on_countButton_clicked()
{
bool ok;
QString tempStr;
QString valueStr=ui->radiusLineEdit->text();
int valueInt=valueStr.toInt(&ok);
qDebug("the number is %d",ok); //输出到控制台
double area=valueInt*valueInt*PI;
ui->areaLabel2->setText(tempStr.setNum(area));
}
void My_Dialog::showArea()
{
bool ok;
QString tempStr;
QString valueStr=ui->radiusLineEdit->text();
int valueInt=valueStr.toInt(&ok);
qDebug("the number is %d",ok); //输出到控制台
double area=valueInt*valueInt*PI;
ui->areaLabel2->setText(tempStr.setNum(area));
}
//main.cpp
#include "my_dialog.h"
#include <QApplication>
//argc是命令行变量的数量,argv是命令行变量的数组
int main(int argc, char *argv[])
{
//在每一个使用Qt图形化应用程序中都必须使用一个QApplication对象。
//QApplication a(argc,argv); a是这个程序的QApplication 对象,
//在任何Qt的窗口系统部件被使用之前创建QApplication对象是必须的。它在
//这里被创建并且处理这些命令行变量,所有被Qt识别的命令行参数都将从argv中移去(并且argc减少)
QApplication a(argc, argv);
//创建一个对话框对象,在该类中完成各种功能
My_Dialog w;
//当创建一个窗口部件的时候,默认它是不可见的,必须调用show()使他变为可见
w.show();
//程序进入消息循环,等待可能的输入进行响应
return a.exec();
}
//按Ctrl+R 运行