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

HuRui 发布于 2017/11/07 15:55
查看:910|回复:4

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


创建一个新工程,项目命名为: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,就是我写的! - - - - - - - - -

查看点赞情况
全部点赞
总计: --

共有4条评论

发布新贴
招版主啦

版主

  • 西米酱 西米酱
  • xly xly
  • 章鱼哥笔记 章鱼哥笔记

注册有礼

完善以下信息,为你推荐课程

  • 学生
  • 白领
  • 高管
  • 自由职业
  • 其他
  • 工作需要
  • 自我提升
  • 兴趣爱好
  • 创业/转型
  • 其他
  • 小白
  • 了解
  • 熟悉
  • 精通
  • 其他
  • 高中/中专
  • 专科
  • 本科
  • 硕士
  • 其他
  • 影视枪战大片特效解析
  • PS视觉惊悚课堂
  • 45天7千平方大厦变形记
  • 原画学习痛点技法全解析
  • 影视动画奇幻课堂
  • AI高端商业设计全攻略
  • UG职场生存必备指南
  • 日赚千元之新媒体行业揭秘
出现异常