widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QListWidgetItem>
#include <QWidget>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
public slots:
void itemClickedMangoSlotFun(QListWidgetItem*);
void valueChangedTotPriceSlotFun(double);
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
widget.cpp
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
ui->dspinboxPrice->setMaximum(20);
ui->dspinboxWeight->setMaximum(20);
ui->dspinboxTotPricte->setMaximum(200);
ui->dspinboxPrice->setPrefix("RMB");
ui->dspinboxWeight->setSuffix("kg");
QListWidgetItem *mango = new QListWidgetItem;
QIcon icoc(":/水果图标/芒果.png");
mango->setIcon(icoc);
mango->setText("mango");
ui->listWidget->addItem(mango);
QListWidgetItem *grape = new QListWidgetItem;
QIcon icoC(":/水果图标/葡萄.png");
grape->setIcon(icoC);
grape->setText("grape");
ui->listWidget->addItem(grape);
QListWidgetItem *watermelon = new QListWidgetItem;
QIcon ic(":/水果图标/西瓜.png");
watermelon->setIcon(ic);
watermelon->setText("watermelon");
ui->listWidget->addItem(watermelon);
QListWidgetItem *banana = new QListWidgetItem;
QIcon iC(":/水果图标/香蕉.png");
banana->setIcon(iC);
banana->setText("banana");
ui->listWidget->addItem(banana);
connect(ui->listWidget,SIGNAL(itemClicked(QListWidgetItem*)),this,SLOT(itemClickedMangoSlotFun(QListWidgetItem*)));
connect(ui->dspinboxWeight,SIGNAL(valueChanged(double)),this,SLOT(valueChangedTotPriceSlotFun(double)));
}
Widget::~Widget()
{
delete ui;
}
void Widget::itemClickedMangoSlotFun(QListWidgetItem *p)
{
if(p->text()=="mango")
ui->dspinboxPrice->setValue(10);
if(p->text()=="grape")
ui->dspinboxPrice->setValue(5);
if(p->text()=="watermelon")
ui->dspinboxPrice->setValue(3);
if(p->text()=="banana")
ui->dspinboxPrice->setValue(7);
double price=ui->dspinboxPrice->value();
double weight=ui->dspinboxWeight->value();
ui->dspinboxTotPricte->setValue(price*weight);
}
void Widget::valueChangedTotPriceSlotFun(double)
{
double price=ui->dspinboxPrice->value();
double weight=ui->dspinboxWeight->value();
ui->dspinboxTotPricte->setValue(price*weight);
}