1.3.2 Qt纯代码实现简单实例 -- 2017.11.7

发布于:2017-11-07 15:55

   纯代码实现窗口界面和计算圆面积功能,神奇宝贝啊.............


创建一个新工程,项目命名为:Dialog   取消“创建界面”复选框的选中状态

在上述工程的dialog.h中加黑代码:

class Dialog : public QDialog

{

    Q_OBJECT


public:

   Dialog(QWidget *parent = 0);

   ~Dialog();

private:        //下面三行代码加黑部分(这里用红色提示)

   QLabel *label1,*label2;

   QLineEdit *lineEdit;

   QPushButton *button;


};


此时,需要在文件最开始加入头文件:  (在文件中用到哪个类时,需要此文件开始部分引用包含此类的头文件)

#include<QLabel>

#include<QLineEdit>

#include<QPushButton>

//其中,Q_OBJECT宏的作用是启动Qt元对象系统的一些特性(如支持信号和槽等),它必须放置到类定义的私有区


在dialog.cpp中添加如下代码:

Dialog::Dialog(QWidget *parent)

{

    label1 = new QLabel(this);

    label1->setText(tr("请输入圆的半径:"));

    lineEdit = new QLineEdit(this);

    label2=new QLabel(this);

    button=new QPushButton(this);

    button->setText(tr("显示对应圆的面积"));


    //用于布局管理器,将所有空间的位置固定

    QGirdLayout *mainLayout = new QGridLayout(this); 

   

    mainLayout->addWidget(Label1,0,0);

    mainLayout->addWidget(LineEdit,0,1);

    mainLayout->addWidget(label2,1,0);

    mainLayout->addWidget(button,1,1);

    

}

注意:在此文件开头处添加头文件#include<QGridLayout>     以上代码完成了界面设计

下面同样通过两种触发不同控件事件的方式完成计算圆面积的功能


方式1:在“LineEdit”文本框输入所需圆的半径值,单击“显示对应圆的面积”按钮后,在label2中显示相对应

的圆的面积值

(1)打开dialog.h文件,在类构造函数和控件成员声明后,添加如下加黑代码:

class Dialog:public QDialog

{

    ......

    QPushButton *button;


//加黑部分,声明槽

private slots:

    void showArea();

}


(2)打开dialog.cpp文件,在构造函数中添加如下加黑代码

Dialog::Dialog(QWidget *parent):QDialog(parent)

{

    ......

    mainLayout->addWidget(button,1,1);

    connect(button,SIGNAL(clicked()),this,SLOT(showArea()));    //加黑部分

}


(3)在showArea()中实现显示圆面积功能

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));

}


(4)在此文件开始处添加全局变量:

const static double PI = 3.1416;


(5)在“LineEdit”文本框中输入圆半径值,单击“显示对应圆的面积”按钮后,在Label2中显示圆面积值


方式2: 在“LineEdit”文本框中输入所需圆的半径值后,不必单击“显示”对应圆的面积按钮,直接在label2

中显示圆的面积值,操作步骤和方式1相同,只是在上述第(2)步骤中,添加的代码修改为如下加黑代码:

Dialog::Dialog(QWidget *parent):QDialog(parent)

{

    ......

    mainLayout->addWidget(button,1,1);

   connect(lineEdit,SIGANL(textChanged(QString)),this,SLOT(showArea()));//加黑部分 

}

                     效果图:725748b9ba36e9a0c910a27832e216f3003.gif



           - - - - - - - - - - 害你加班的bug,就是我写的! - - - - - - - - -

共有3条评论
正序查看
倒序查看
8班-安徽-陈红 2017-11-07 15:59
回复

大神我来了

8班-安徽-陈红 2017-11-07 16:01
回复

抢沙发

HuRui 回复 8班-安徽-陈红 2017-11-08 08:38
回复
You are beautiful...
10班-深圳-丑丑 2017-11-08 08:40
回复

B_77.gif

回复:1.3.2 Qt纯代码实现简单实例 -- 2017.11.7

图片
视频

0

今日新帖

0

昨日新帖

35

帖子总数