当前位置:网站首页>QT addition calculator (simple case)
QT addition calculator (simple case)
2022-07-04 23:15:00 【Yinzz2】
Learn through a small case Qt
Realization function 1. Enter two numbers , Press “=” Button to display the calculation results
2. Both operands must be legal numbers , Refuse to accept any illegal characters
3. Both operands must be legal ,“=” The button is activated , Otherwise, disable ( You can't click )
4. The control that displays the results can only be viewed and cannot be modified , But it supports copying to the clipboard
5. The size and position of all sub windows are automatically adjusted to the best with the scaling of the main window
Code section :( Difficulties have notes )
test.h
#ifndef _TEST_H
#define _TEST_H
#include<QLabel>
#include<QLineEdit> // Row edit control
#include<QHBoxLayout> // Horizontal placer
#include<QDialog>
#include<QPushButton>
#include<QDoubleValidator> // Tester
class sum:public QDialog
{
Q_OBJECT
public:
sum(void);
public slots:
void enablebutton(void);
void get_result(void);
private:
QLineEdit* edit_x;
QLineEdit* edit_y;
QLineEdit* edit_z;
QLabel* m_label;
QPushButton* m_button;
};
#endiftest.cpp
#include<test.h>
sum::sum(void)
{
/*--------**** Initialize each parameter ****---------------*/
setWindowTitle(" Calculator ");
edit_x = new QLineEdit(this); //this That is, the current parent class pointer
edit_x->setAlignment(Qt::AlignLeft); // Align text left
edit_x->setValidator(new QDoubleValidator(this)); // Set up the digital verifier , Only numeric content can be entered
edit_y = new QLineEdit(this);
edit_y->setAlignment(Qt::AlignLeft);
edit_y->setValidator(new QDoubleValidator(this));
edit_z = new QLineEdit(this);
edit_z->setAlignment(Qt::AlignLeft); // Set read-only
edit_z->setReadOnly(true);
m_label = new QLabel("+",this);
m_button = new QPushButton("=",this);
m_button->setEnabled(false); // Initially set to disabled
/*--------**** Create a horizontal layout ****---------------*/
QHBoxLayout* layout = new QHBoxLayout(this);
layout->addWidget(edit_x);
layout->addWidget(m_label);
layout->addWidget(edit_y);
layout->addWidget(m_button);
layout->addWidget(edit_z);
setLayout(layout); // Set the layout
/*-------******** Slot function and signal ******----------------*/
connect(edit_x,SIGNAL(textChanged(QString)),this,SLOT(enablebutton(void)));
connect(edit_y,SIGNAL(textChanged(QString)),this,SLOT(enablebutton(void)));
connect(m_button,SIGNAL(clicked(void)),this,SLOT(get_result(void)));
}
//text() Get input text (QString) toDouble() take QString Convert to Double
void sum::enablebutton(void)
{
bool judge_x,judge_y;
edit_x->text().toDouble(&judge_x);
edit_y->text().toDouble(&judge_y);
m_button->setEnabled(judge_x && judge_y);
}
//number(): take double convert to QString
//setText(const QString &text)
void sum::get_result(void)
{
double res = edit_x->text().toDouble() + edit_y->text().toDouble();
QString str = QString::number(res);
edit_z->setText(str);
}
main.cpp
#include<test.h>
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
sum w;
w.show();
return a.exec();
}
Experimental phenomena :

边栏推荐
- Excel 快捷键-随时补充
- vim编辑器知识总结
- Docker镜像的缓存特性和Dockerfile
- 可观测|时序数据降采样在Prometheus实践复盘
- Photoshop批量给不同的图片添加不同的编号
- 机器学习在房屋价格预测上的应用
- How to choose a securities company? Is it safe to open an account on your mobile phone
- Mysql database backup and recovery -- mysqldump command
- Redis getting started complete tutorial: Key Management
- [machine learning] handwritten digit recognition
猜你喜欢
随机推荐
Redis入门完整教程:哈希说明
Application of machine learning in housing price prediction
实战模拟│JWT 登录认证
mamp下缺少pcntl扩展的解决办法,Fatal error: Call to undefined function pcntl_signal()
How can enterprises cross the digital divide? In cloud native 2.0
Redis démarrer le tutoriel complet: Pipeline
ffmpeg快速剪辑
A complete tutorial for getting started with redis: redis usage scenarios
字体设计符号组合多功能微信小程序源码
SHP data making 3dfiles white film
A complete tutorial for getting started with redis: getting to know redis for the first time
微信公众号解决从自定义菜单进入的缓存问题
【爬虫】数据提取之xpath
Redis introduction complete tutorial: detailed explanation of ordered collection
[ODX studio edit PDX] - 0.2-how to compare two pdx/odx files of compare
[machine learning] handwritten digit recognition
Redis introduction complete tutorial: List explanation
QT drawing network topology diagram (connecting database, recursive function, infinite drawing, dragging nodes)
[crawler] XPath for data extraction
Editplus-- usage -- shortcut key / configuration / background color / font size









![[graph theory] topological sorting](/img/2c/238ab5813fb46a3f14d8de465b8999.png)