热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Qt设计师designer加法器案例

1.通过设计师生成ui文件2.将ui文件转为c头文件并使用这里生成ui_CalculatorDialog.h是为了更清楚整个构建过程,一般make会自动做这一步下面的代码是组合的方
1. 通过设计师生成ui文件

在这里插入图片描述
在这里插入图片描述

2. 将ui文件转为c++头文件并使用

在这里插入图片描述

  • 这里生成ui_CalculatorDialog.h是为了更清楚整个构建过程, 一般make会自动做这一步
  • 下面的代码是组合的方式来构建的。(注意要写析构函数销毁ui对象)

ui_CalculatorDialog.h

......
// Ui_CalculatorDialog 这个类可以来实例化父窗口对象
class Ui_CalculatorDialog
{
public:QHBoxLayout *horizontalLayout;QLineEdit *m_editZ;QLabel *m_label;QLineEdit *m_editY;QPushButton *m_button;QLineEdit *m_editX;......// 基于父窗口 CalculatorDialog 完成初始化操作// 界面的所有初始化操作都写在 setupUi 函数里void setupUi(QDialog *CalculatorDialog) {......}// retranslateUi 把disigner界面的文本内容翻译成Qt能识别的Unicode编码void retranslateUi(QDialog *CalculatorDialog){......}
};// Ui名字空间里的类 CalculatorDialog 和 上面的 Ui_CalculatorDialog 是一样的
// 开发时两个类都可以用来实例化父窗口,但推荐用 CalculatorDialog
namespace Ui {class CalculatorDialog: public Ui_CalculatorDialog {};
} // namespace UiQT_END_NAMESPACE#endif // UI_CALCULATORDIALOG_H

CalculatorDialog.h

#ifndef __CALCULATORDIALOG_H
#define __CALCULATORDIALOG_H
#include "ui_CalculatorDialog.h"
#include class CalculatorDialog:public QDialog{Q_OBJECT //moc
public:CalculatorDialog(void);~CalculatorDialog(void);
public slots:// 使能等号按钮的槽函数void enableBUtton(void);// 计算结果并显示的槽函数void calcClicked(void);
private:// 将来通过"ui->"的方式访问界面相关代码Ui::CalculatorDialog* ui;
};
#endif //__CALCULATORDIALOG_H

CalculatorDialog.cpp

#include "CalculatorDialog.h"
#include
#include
// 构造函数
CalculatorDialog::CalculatorDialog(void):ui(new Ui::CalculatorDialog){// 界面初始化ui->setupUi(this);// 界面初始化的操作都在ui里,剩下一下逻辑性的操作ui->m_editX->setValidator(new QDoubleValidator(this)); // 设置数字验证器,使能输入数字形式内容QObject::connect(ui->m_editX, SIGNAL(textChanged(const QString &)), this, SLOT(enableBUtton(void)));QObject::connect(ui->m_editY, SIGNAL(textChanged(const QString &)), this, SLOT(enableBUtton(void)));QObject::connect(ui->m_button, SIGNAL(clicked(void)), this, SLOT(calcClicked(void)));
}
// 析构函数
CalculatorDialog::~CalculatorDialog(void){delete ui;
}
// 使能等号按钮的槽函数
void CalculatorDialog::enableBUtton(void){bool bXOk, bYOk;// text()获取输入文本, QString text()// toDouble(), QString类类型转为double类型, 如果传成功了,bXOk置为 trueui->m_editX->text().toDouble(&bXOk);ui->m_editY->text().toDouble(&bYOk);// 当左右操作数都输入了有效数据, 就使能等号按钮,否则设置禁用ui->m_button->setEnabled(bXOk && bYOk);
}// 计算结果并显示的槽函数
void CalculatorDialog::calcClicked(void){double res = ui->m_editX->text().toDouble() + ui->m_editY->text().toDouble();// number(),将double类型转换QString类类型QString str = QString::number(res);// 显示字符串形式结果ui->m_editZ->setText(str);
}

main.cpp

#include "CalculatorDialog.h"
#include int main(int argc, char** argv){QApplication app(argc, argv);CalculatorDialog cal;cal.show();return app.exec();
}

result:
在这里插入图片描述


推荐阅读
author-avatar
书友53099678
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有