一、Qt设计简单实例(Qt5 GUI系列)

目录

一、设计需求

二、实现

(1)Qt Designer实现

(2)代码实现

三、总结


一、设计需求

二、实现

(1)Qt Designer实现

#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>

namespace Ui {
class Dialog;
}

class Dialog : public QDialog
{
    Q_OBJECT
    
public:
    explicit Dialog(QWidget *parent = 0);
    ~Dialog();
    
private slots:

    void on_countBtn_clicked();

    void on_radiusLineEdit_textChanged(const QString &arg1);

private:
    Ui::Dialog *ui;
};

#endif // DIALOG_H
#include "dialog.h"
#include "ui_dialog.h"
const static double PI=3.1416;
Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{

    ui->setupUi(this);
}

Dialog::~Dialog()
{
    delete ui;
}
//检测计算按钮单机信号
void Dialog::on_countBtn_clicked()
{
    bool ok;
    QString tempStr;
    //获取半径
    QString valueStr=ui->radiusLineEdit->text();
    int valueInt=valueStr.toInt(&ok);
    double area=valueInt*valueInt*PI;//计算圆面积
    //设置数据
    ui->areaLabel_2->setText(tempStr.setNum(area));
}
//检测半径输入框内容改变信号
void Dialog::on_radiusLineEdit_textChanged(const QString &arg1)
{
    bool ok;
    QString tempStr;
    //获取半径
    QString valueStr=ui->radiusLineEdit->text();
    int valueInt=valueStr.toInt(&ok);
    double area=valueInt*valueInt*PI;//计算圆面积
    //设置数据
    ui->areaLabel_2->setText(tempStr.setNum(area));
}

效果展示:

(2)代码实现

#ifndef DIALOG_H
#define DIALOG_H

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

class Dialog : public QDialog
{
    Q_OBJECT
    
public:
    Dialog(QWidget *parent = 0);
    ~Dialog();
private:
    QLabel *label1,*label2;
    QLineEdit *lineEdit;
    QPushButton *button;
private slots:
    void showArea();
};

#endif // DIALOG_H
#include "dialog.h"
#include <QGridLayout>

//定义PI
const static double PI=3.1416;

Dialog::Dialog(QWidget *parent)
    : QDialog(parent)
{
    //初始化控件
    label1=new QLabel(this);
    label1->setText(tr("请输入圆的半径:"));
    lineEdit=new QLineEdit(this);
    label2=new QLabel(this);
    button=new QPushButton(this);
    button->setText(tr("计算"));

    //新建主要布局(此处为栅格布局)
    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()));
    connect(lineEdit,SIGNAL(textChanged(QString)),this,SLOT(showArea()));
}

Dialog::~Dialog()
{
    
}

/**
 * @brief 显示面积函数
 */
void Dialog::showArea()
{
    bool ok;
    QString tempStr;
    //获取半径
    QString valueStr=lineEdit->text();
    int valueInt=valueStr.toInt(&ok);
    //计算面积
    double area=valueInt*valueInt*PI;
    //修改数据
    label2->setText(tempStr.setNum(area));
}

效果展示:

三、总结

        本文的示例比较简单、易懂,旨在介绍一下Qt GUI设计的方法和流程。各位不必使用单一的方法设计界面。纯代码和Designer相互配合才能高效的设计出优秀的界面。

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值