Qt开发——圆面积计算器

目录

1.dialog.h

2.dialog.cpp

3.main.cpp

4.dialog.ui不需要改动


不使用图形化界面布局,效果:

1.dialog.h

#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>

namespace Ui {
class Dialog;
}

class Dialog : public QDialog
{
    Q_OBJECT

public:
    explicit Dialog(QWidget *parent = nullptr);
    ~Dialog();

private:
    Ui::Dialog *ui;
    //添加界面中的控件对象
    QLabel *label1,*label2;
    QLineEdit *lineEdit;
    QPushButton *button;
private slots:
    void showArea();

};

#endif // DIALOG_H

2.dialog.cpp

#include "dialog.h"
#include "ui_dialog.h"
#include <QGridLayout>//布局管理
static double PI=3.14159;

Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    ui->setupUi(this);
    label1=new QLabel(this);
    label1->setText(tr("radius:"));
    lineEdit=new QLineEdit(this);
    label2=new QLabel(this);
    button=new QPushButton(this);
    button->setText(tr("area"));
    QGridLayout *mainLayout=new QGridLayout(this);//布局管理器,将所有空间位置固定

    mainLayout->addWidget(label1,0,0);
    mainLayout->addWidget(lineEdit,0,1);
    mainLayout->addWidget(label2,1,0);
    mainLayout->addWidget(button,1,1);
    connect(button,SIGNAL(clicked()),this,SLOT(showArea()));
}
//Dialog::Dialog(QWidget *parent)
//    :QDialog (parent)
//{

//}
Dialog::~Dialog()
{
    delete ui;
}
void Dialog::showArea()
{
    bool ok;
    QString tempStr;
    QString valueStr=lineEdit->text();
    int valueInt=valueStr.toInt(&ok);
    double area=valueInt*valueInt*valueInt*PI;
    label2->setText(tempStr.setNum(area));
}

3.main.cpp

#include "dialog.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Dialog w;//创建对话框对象
    w.show();

    return a.exec();
}

4.dialog.ui不需要改动

下一篇主要总结一下qt信号与槽机制

发布了228 篇原创文章 · 获赞 76 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/qq_41895747/article/details/103905841