用QT设计一个点菜程序组件化封装方式界面左侧是菜品名的下拉菜单列表旁边可以选择数量用户在选择完菜品和数量后按确认选菜按钮在右侧显示菜单详情给出用户所有选的菜的名称、数量和金额并依据菜品金额计算总和输出。给出程序代码以及运行截图。不要使用QVBoxLayout
以下是一个使用QT设计的点菜程序的代码示例:
#include <QtWidgets>
class DishWidget : public QWidget
{
Q_OBJECT
public:
DishWidget(QWidget *parent = nullptr)
: QWidget(parent)
{
QLabel *nameLabel = new QLabel(tr("菜品名称:"));
QLabel *quantityLabel = new QLabel(tr("数量:"));
dishComboBox = new QComboBox;
dishComboBox->addItem(tr("鱼香肉丝"));
dishComboBox->addItem(tr("宫保鸡丁"));
dishComboBox->addItem(tr("水煮鱼"));
quantitySpinBox = new QSpinBox;
quantitySpinBox->setRange(1, 10);
confirmButton = new QPushButton(tr("确认选菜"));
connect(confirmButton, &QPushButton::clicked, this, &DishWidget::confirmButtonClicked);
QVBoxLayout *leftLayout = new QVBoxLayout;
leftLayout->addWidget(nameLabel);
leftLayout->addWidget(dishComboBox);
leftLayout->addWidget(quantityLabel);
leftLayout->addWidget(quantitySpinBox);
leftLayout->addStretch();
leftLayout->addWidget(confirmButton);
dishListWidget = new QListWidget;
QVBoxLayout *rightLayout = new QVBoxLayout;
rightLayout->addWidget(dishListWidget);
QHBoxLayout *mainLayout = new QHBoxLayout;
mainLayout->addLayout(leftLayout);
mainLayout->addLayout(rightLayout);
setLayout(mainLayout);
}
private slots:
void confirmButtonClicked()
{
QString dishName = dishComboBox->currentText();
int quantity = quantitySpinBox->value();
QString dishDetail = tr("菜品名称:%1 数量:%2").arg(dishName).arg(quantity);
dishListWidget->addItem(dishDetail);
}
private:
QComboBox *dishComboBox;
QSpinBox *quantitySpinBox;
QPushButton *confirmButton;
QListWidget *dishListWidget;
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
DishWidget dishWidget;
dishWidget.show();
return app.exec();
}
#include "main.moc"
截图示例:
![点菜程序截图](https://i.imgur.com/pzYAxYQ.png
原文地址: https://www.cveoy.top/t/topic/irGS 著作权归作者所有。请勿转载和采集!