on_btnAppend_clicked()
不用连接信号和槽,写完函数就有点击运行的功能,但是on_后必须是按钮名称才有效。
效果
代码
sample4_1.h
#pragma once
#include <QtWidgets/QWidget>
#include "ui_sample4_1.h"
class sample4_1 : public QWidget
{
Q_OBJECT
public:
sample4_1(QWidget *parent = Q_NULLPTR);
public slots:
virtual void on_btnCal_clicked();
virtual void on_btnDec_clicked();
virtual void on_btnBin_clicked();
virtual void on_btnAppend_clicked();
virtual void on_btnCount_clicked();
virtual void on_btnEndWith_clicked();
private:
Ui::sample4_1Class ui;
};
sample4_1.cpp
#include "sample4_1.h"
sample4_1::sample4_1(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
//connect(ui.btnCal, SIGNAL(clicked()), this, SLOT(on_pushButton_clicked()));
connect(ui.btnDec, SIGNAL(clicked()), this, SLOT(on_btnDec_clicked()));
connect(ui.btnBin, SIGNAL(clicked()), this, SLOT(on_btnBin_clicked()));
}
void sample4_1::on_btnCal_clicked()//控件里是字符串,要先转换成数值才能进行计算
{
QString str = ui.editNum->text();
int num = str.toInt();//字符串转换成整型数值
str = ui.editPrice->text();
float price = str.toFloat();//字符串转换成浮点型数值
float total = num * price;
str = str.setNum(total, 'f', 2);//数值转换成字符串
ui.editTotal->setText(str);
}
void sample4_1::on_btnDec_clicked()
{
QString str = ui.editDec->text();
int value = str.toInt();//转换为整型
str = str.setNum(value, 2);//转换为二进制
ui.editBin->setText(str);
str = str.setNum(value, 16);//转换为16进制
ui.editHex->setText(str.toUpper());
}
void sample4_1::on_btnBin_clicked()
{
QString str = ui.editBin->text();
bool ok;
int value = str.toInt(&ok, 2);//转换成二进制整型
ui.editDec->setText(QString::number(value));//二进制转换为十进制
ui.editHex->setText(QString::number(value, 16). toUpper());//二进制转换为16进制,大写
}
void sample4_1::on_btnAppend_clicked()
{
QString str1, str2;
str1 = ui.comboBox1->currentText();
str2 = ui.comboBox2->currentText();
ui.lineEdit_3->setText(str1.append(str2));//字符串str1、str2相加
}
void sample4_1::on_btnCount_clicked()//点击count
{
QString str1 = ui.comboBox1->currentText();
ui.spinBox->setValue(str1.count());
ui.label_10->setText("count()");//字符串str1长度计数
}
void sample4_1::on_btnEndWith_clicked()//点击endWith
{
QString str1, str2;
str1 = ui.comboBox1->currentText();
str2 = ui.comboBox2->currentText();
ui.checkBox->setChecked(str1.endsWith(str2));//判断str1是不是以str2结尾
}
笔记
P14
P15