• Qt实现厨房值班员的显示模块,如何做到时间到达0:00更新显示


    关注 码龄 粉丝数 原力等级 -- 被采纳 被点赞 采纳率 weixin_44127977 2024-06-05 16:45 采纳率: 28.6% 浏览 3 首页/ 编程语言 / Qt实现厨房值班员的显示模块,如何做到时间到达0:00更新显示 qt开发语言c++ Qt实现厨房值班员的显示模块,如何做到时间到达0:00更新显示 QWidget* LargeScreen::initPerson(QWidget* parent) { QWidget* personWidget = new QWidget(parent); QGridLayout* layout = new QGridLayout(); QLabel* personTitle = new QLabel("厨房值班员"); personTitle->setAlignment(Qt::AlignCenter); personTitle->setFont(font1); personTitle->setStyleSheet("QLabel{color:#d7f2f1;}"); QString curDate = QDate::currentDate().toString(Qt::ISODate); QString sqlSelect = "where endDate>='"; sqlSelect += curDate; sqlSelect += "'"; std::string sqlSel = sqlSelect.toStdString(); std::vector> zbContent = mysqlSelectWhere("zhibanyuan", sqlSel); int dataNum = zbContent.size(); std::string zby=""; for (int i = 0; i < dataNum; i++) { if (QString::fromStdString(zbContent[i][0]) <= curDate) { zby = zbContent[i][2]; break; } } QString imageStr = ""; QString nameStr = ""; QString zhiwuStr = ""; if (zby != "") { std::string sqlSelect1 = "where name='"; sqlSelect1 += zby; sqlSelect1 += "'"; std::vector> zbyContent = mysqlSelectWhere("person", sqlSelect1); imageStr = QString::fromStdString(zbyContent[0][3]); nameStr = QString::fromStdString(zbyContent[0][1]); zhiwuStr = QString::fromStdString(zbyContent[0][2]); } imageStr = "./data/person/" + imageStr; imageStr += ".jpg"; ImageLbl* image = new ImageLbl(imageStr,screenW*0.09,screenW*0.12); QLabel* nameLabel = new QLabel("姓名"); nameLabel->setAlignment(Qt::AlignCenter); nameLabel->setFont(font2); nameLabel->setStyleSheet("QLabel{color:#eaf1f8;}"); QLabel* name = new QLabel(nameStr); name->setAlignment(Qt::AlignCenter); name->setFont(font2); name->setStyleSheet("QLabel{color:#eaf1f8;}"); QLabel* zhiwuLabel = new QLabel("职务"); zhiwuLabel->setAlignment(Qt::AlignCenter); zhiwuLabel->setFont(font2); zhiwuLabel->setStyleSheet("QLabel{color:#eaf1f8;}"); QLabel* zhiwu = new QLabel(zhiwuStr); zhiwu->setAlignment(Qt::AlignCenter); zhiwu->setFont(font2); zhiwu->setStyleSheet("QLabel{color:#eaf1f8;}"); layout->addWidget(personTitle, 0, 0, 1, 5); layout->addWidget(image, 1, 0, 4, 2); layout->addWidget(nameLabel, 1, 2, 1, 3); layout->addWidget(name, 2, 2, 1, 3); layout->addWidget(zhiwuLabel, 3, 2, 1, 3); layout->addWidget(zhiwu, 4, 2, 1, 3); layout->setHorizontalSpacing(screenW / 20); personWidget->setLayout(layout); personWidget->setStyleSheet(".QWidget{border:1px solid #4bbac6;}"); return personWidget; } 展开全部 收起 写回答 好问题 0 提建议 追加酬金 关注问题 微信扫一扫 点击复制链接 分享 邀请回答 编辑 收藏 删除 结题 收藏 举报 追加酬金 (90%的用户在追加酬金后获得了解决方案) 当前问题酬金 ¥ 0 (可追加 ¥500) ¥ 15¥ 20¥ 50¥ 100¥ 200 支付方式 扫码支付 二维码出错 点击刷新 支付金额 15 元 提供问题酬金的用户不参与问题酬金结算和分配 支付即为同意 《付费问题酬金结算规则》 结题 再想想 删除 再等等

    1条回答 默认 最新

    • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-05 16:45
      关注

      引自免费微信小程序:皆我百晓生

      为了在Qt中实现厨房值班员的显示模块,并确保在每天凌晨0点自动更新显示,你需要使用一个定时器(QTimer)来触发定期检查并更新数据的操作。首先,你需要包含必要的头文件,并在类中定义一个QTimer对象。然后,在初始化时设置定时器的间隔为一天,并连接到一个槽函数,这个槽函数负责查询数据库并更新界面。

      以下是修改后的代码示例:

      #include 
      
      class YourClass : public QWidget // 假设这是一个继承自QWidget的类
      {
      public:
          YourClass(QWidget *parent = nullptr)
              : QWidget(parent),
                timer(new QTimer(this)) // 定义QTimer对象
          {
              initPerson(); // 初始化界面
              startUpdateTimer(); // 启动定时器
          }
      
      private slots:
          void updateDataAndDisplay(); // 更新数据并显示的槽函数
      
      private:
          QTimer* timer;
      
          void initPerson(); // 你提供的initPerson方法
          void startUpdateTimer();
      };
      
      void YourClass::startUpdateTimer()
      {
          // 设置定时器间隔为一天,并且在午夜0点触发
          timer->setInterval(24 * 60 * 60 * 1000); // 1天的毫秒数
          timer->setSingleShot(false); // 设置为周期性触发
          connect(timer, &QTimer::timeout, this, &YourClass::updateDataAndDisplay); // 连接到updateDataAndDisplay槽函数
          timer->start(); // 启动定时器
      }
      
      void YourClass::updateDataAndDisplay()
      {
          // 在这里执行数据库查询和界面更新的逻辑
          // ...
      
          // 更新界面
          this->update(); // 刷新整个窗口
      }
      
      // 其他相关的方法...
      

      这样,每次定时器触发时,都会调用updateDataAndDisplay函数,从而查询最新的值班员信息并更新界面。记得在你的类中添加上述代码,并将YourClass替换为你实际的类名。这应该能确保你的厨房值班员显示模块在每天凌晨0点自动更新。

      展开全部

      评论 编辑记录
      编辑
      预览

      报告相同问题?

    • 相关阅读:
      Linux程序调试工具使用整理
      用Python把附近的足浴店都给采集了一遍,好兄弟:针不戳~
      Kubernetes集群Pod控制器
      【外汇天眼】携手共护外汇投资:2023年WikiFX晚宴首次在越南圆满举行
      Vue网页中使用PDF.js弹窗显示pdf文档所有内容
      如何从Android恢复出厂设置后的手机恢复数据
      CSS 选择器Day01
      【力扣LCP】速算机器人
      SpringCloud - Sleuth分布式请求链路跟踪
      【研究的艺术】通读《The Craft of Research》
    • 原文地址:https://ask.csdn.net/questions/8114462