CH01
Posted zach0812
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CH01相关的知识,希望对你有一定的参考价值。
CH101_计算圆的面积
ui 如下:
方法一:在LineEdit中输入半径值,然后点击计算,在面积中显示结果:
1 void Dialog::on_countBtn_clicked() // 信号用的是clicked() QAbstractButton 2 3 bool ok; 4 QString tempStr; 5 QString valueStr = ui->radiusLineEdit->text(); 6 int valueInt = valueStr.toInt(&ok); //ok 传出参数 ,可以判断转换是否成功! 7 qDebug()<<ok; 8 9 double area = valueInt*valueInt*PI; //PI 是个宏 10 ui->areaLabel_2->setText(tempStr.setNum(area)); 11
方法二:在LineEdit 中输入半径值,直接就在后面显示面积:
void Dialog::on_radiusLineEdit_textChanged(const QString &arg1) //信号用的是textChanged(QString) QLineEdit bool ok; QString tempStr; QString valueString = ui->radiusLineEdit->text(); int valueInt = valueString.toInt(&ok); double area = valueInt*valueInt*PI; ui->areaLabel_2->setText(tempStr.setNum(area)); //qDebug()<<arg1; // 显示LineEdit 中的文本
CH102_不用ui 来创建窗口:
方法一:在LineEdit 中输入,点击计算得到结果
#include <QLabel> #include <QLineEdit> #include <QPushButton> #ifndef DIALOG_H #define DIALOG_H //Dialog.h #include <QDialog> 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
1 //Dialog.cpp 2 #include "dialog.h" 3 #include <QGridLayout> 4 5 #define PI 3.1416 6 7 Dialog::Dialog(QWidget *parent) 8 : QDialog(parent) 9 10 label1 = new QLabel(this); 11 label1->setText(tr("请输入圆的半径: ")); 12 lineEdit = new QLineEdit(this); 13 label2 = new QLabel(this); 14 button = new QPushButton(this); 15 button->setText(tr("显示对应的圆面积")); 16 17 QGridLayout * mainLayout = new QGridLayout(this); 18 mainLayout->addWidget(label1,0,0); 19 mainLayout->addWidget(lineEdit,0,1); 20 mainLayout->addWidget(label2,1,0); 21 mainLayout->addWidget(button,1,1); 22 23 connect(button,SIGNAL(clicked()),this,SLOT(showArea())); 24 25 Dialog::~Dialog() 26 27 28 void Dialog::showArea() 29 30 bool ok; 31 QString tempStr; 32 QString valueStr = lineEdit->text(); 33 int valueInt = valueStr.toInt(&ok); 34 double area = valueInt*valueInt*PI; 35 label2->setText(tempStr.setNum(area)); 36
方法二:在LineEdit 中输入内容,直接得到结果:
仅仅需要修改Dialog.cpp 中的连接信号和槽的connet() 就行了:
1 //Dialog.cpp 中 的构造函数 2 Dialog::Dialog(QWidget *parent) 3 : QDialog(parent) 4 5 label1 = new QLabel(this); 6 label1->setText(tr("请输入圆的半径: ")); 7 lineEdit = new QLineEdit(this); 8 label2 = new QLabel(this); 9 button = new QPushButton(this); 10 button->setText(tr("显示对应的圆面积")); 11 12 QGridLayout * mainLayout = new QGridLayout(this); 13 mainLayout->addWidget(label1,0,0); 14 mainLayout->addWidget(lineEdit,0,1); 15 mainLayout->addWidget(label2,1,0); 16 mainLayout->addWidget(button,1,1); 17 18 connect(lineEdit,SIGNAL(textChanged(QString)),this,SLOT(showArea())); 19
以上是关于CH01的主要内容,如果未能解决你的问题,请参考以下文章