#include "widget.h" #include "ui_widget.h" #include #include #include #include #include #include // #include #include #include #include #include #include #include using namespace std; // 硬编码参数值 int file_delay = 1270; // 延迟时间(毫秒) int file_encoder = 12000; // 编码器值++ int file_valve = 200; // 阀门通道 Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui->setupUi(this); ui->camera_0_img->setScaledContents(true); iniColor(); iniLowMac(); iniCamera(); // 启动显示定时器,每秒检查一次 QTimer* timer = new QTimer(this); connect(timer, &QTimer::timeout, this, &Widget::refreshImage); timer->start(50); // 每50毫秒秒刷新一次界面 } Widget::~Widget() { // DestoryCamera(); } void Widget::refreshImage() { MIL_ID current_id = 0; // 获取当前的 MIL_ID { QMutexLocker locker(&gPicMutex0); current_id = gCurrentPicId0; } if (current_id == 0) return; // 获取 QPixmap 并设置到 QLabel QPixmap pixmap = ImageUtils::mat2QPixmap(ImageUtils::mil2Mat(current_id)); if (!pixmap.isNull()) { ui->camera_0_img->setPixmap(pixmap); } } void Widget::on_pushButton_clicked() { Start_camera(); } void Widget::on_pushButton_2_clicked() { SaveImg_Flag = 1; } void Widget::on_btn_goto_sort_clicked() { // 获取当前的 MIL_ID { QMutexLocker locker(&gPicMutex0); gCurrentPicId0 = 0; } DestoryCamera(); DestoryLowMac(); }