供货信息管理系统,要有应用程序主窗口,麻烦大家了,有偿,谢谢
2条回答 默认 最新
- |__WhoAmI__| 2023-01-02 20:14关注
以下是使用QT创建应用程序主窗口的供货信息管理系统,仅供参考,望采纳,谢谢。
#include <QApplication> #include <QMainWindow> #include <QPushButton> #include <QLineEdit> #include <QLabel> #include <QVBoxLayout> #include <QHBoxLayout> #include <QMessageBox> #include <stack> #include <string> #include <iostream> struct Goods { std::string name; std::string production_date; int quantity; }; class Shelf { public: void Push(const Goods &goods) { stack_.push(goods); } Goods Pop() { Goods goods = stack_.top(); stack_.pop(); return goods; } void Reverse() { std::stack<Goods> reversed_stack; while (!stack_.empty()) { reversed_stack.push(stack_.top()); stack_.pop(); } stack_ = reversed_stack; } bool Empty() const { return stack_.empty(); } int Size() const { return stack_.size(); } private: std::stack<Goods> stack_; }; class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr) : QMainWindow(parent) { // 创建界面元素 name_edit_ = new QLineEdit; QLineEdit *name_edit_; QLineEdit *date_edit_; QLineEdit *quantity_edit_; QPushButton *push_button_; QPushButton *pop_button_; QPushButton *reverse_button_; QLabel *label_; Shelf shelf_; public: MainWindow(QWidget *parent = nullptr) : QMainWindow(parent) { // 创建界面元素 name_edit_ = new QLineEdit; date_edit_ = new QLineEdit; quantity_edit_ = new QLineEdit; push_button_ = new QPushButton("上货"); pop_button_ = new QPushButton("取货"); reverse_button_ = new QPushButton("倒货架"); label_ = new QLabel; // 创建布局 QVBoxLayout *left_layout = new QVBoxLayout; left_layout->addWidget(new QLabel("商品名称:")); left_layout->addWidget(name_edit_); left_layout->addWidget(new QLabel("生产日期:")); left_layout->addWidget(date_edit_); left_layout->addWidget(new QLabel("数量:")); left_layout->addWidget(quantity_edit_); QVBoxLayout *right_layout = new QVBoxLayout; right_layout->addWidget(push_button_); right_layout->addWidget(pop_button_); right_layout->addWidget(reverse_button_); QHBoxLayout *main_layout = new QHBoxLayout; main_layout->addLayout(left_layout); main_layout->addLayout(right_layout); main_layout->addWidget(label_); // 创建中心部件并设置布局 QWidget *central_widget = new QWidget; central_widget->setLayout(main_layout); setCentralWidget(central_widget); // 连接信号和槽 connect(push_button_, &QPushButton::clicked, this, &MainWindow::OnPush); connect(pop_button_, &QPushButton::clicked, this, &MainWindow::OnPop); connect(reverse_button_, &QPushButton::clicked, this, &MainWindow::OnReverse); // 设置窗口属性 setWindowTitle("货架管理系统"); resize(640, 480); } private slots: void OnPush() { // 获取输入的信息 QString name = name_edit_->text(); QString date = date_edit_->text(); int quantity = quantity_edit_->text().toInt(); // 上货 shelf_.Push({name.toStdString(), date.toStdString(), quantity}); // 清空输入框 name_edit_->clear(); date_edit_->clear(); quantity_edit_->clear(); } void OnPop() { if (shelf_.Empty()) { QMessageBox::warning(this, "错误", "货架已经没有商品了!"); return; } // 取货 Goods goods = shelf_.Pop(); label_->setText(QString("取货:%1 %2 %3").arg(goods.name.c_str()).arg(goods.production_date.c_str()).arg(goods.quantity)); } void OnReverse() { // 倒货架 shelf_.Reverse(); } }; int main(int argc, char *argv[]) { QApplication app(argc, argv); MainWindow window; window.show(); return app.exec(); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 对于这个复杂问题的解释说明
- ¥50 三种调度算法报错 采用的你的方案
- ¥15 关于#python#的问题,请各位专家解答!
- ¥200 询问:python实现大地主题正反算的程序设计,有偿
- ¥15 smptlib使用465端口发送邮件失败
- ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
- ¥15 对于squad数据集的基于bert模型的微调
- ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
- ¥20 steam下载游戏占用内存
- ¥15 CST保存项目时失败