嘟嘟社区

C++ QT 链接电脑摄像头 代码问题


  1. #include "mainwindow.h"
  2. #include "ui_mainwindow.h"
  3. MainWindow::MainWindow(QWidget *parent)
  4.     : QMainWindow(parent)
  5.     , ui(new Ui::MainWindow)
  6. {
  7.     ui->setupUi(this);
  8.     camera=new QCamera("@device:pnp:\?\usb#vid_0edc&pid_2076&mi_00#6&3455a94a&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global",this);
  9.     viewfinder=new QCameraViewfinder(this);
  10.     imageCapture=new QCameraImageCapture(camera);
  11.     ui->horizontalLayout_View->addWidget(viewfinder);
  12.     ui->label_Display->setScaledContents(true);
  13.     camera->setViewfinder(viewfinder);
  14.     camera->start();
  15.     connect(imageCapture, SIGNAL(imageCaptured(int,QImage)), this, SLOT(displayImage(int,QImage)));
  16.     connect(ui->pushButton_Capture, SIGNAL(clicked()), this, SLOT(captureImage())); //**
  17.     connect(ui->pushButton_Save, SIGNAL(clicked()), this, SLOT(saveImage())); //***
  18.     connect(ui->pushButton_Quit, SIGNAL(clicked()), qApp, SLOT(quit())); //***
  19. }
  20. MainWindow::~MainWindow()
  21. {
  22.     delete ui;
  23. }
  24. void MainWindow::captureImage()
  25. {
  26. ui->statusbar->showMessage(tr("正在捕获图片"), 1000);
  27. imageCapture->capture();
  28. }
  29. void MainWindow::displayImage(int , QImage image)
  30. {
  31. ui->label_Display->setPixmap(QPixmap::fromImage(image));
  32. ui->statusbar->showMessage(tr("捕获成功"), 5000);
  33. }
  34. void MainWindow::saveImage()
  35. {
  36.     QString fileName=QFileDialog::getSaveFileName(this, tr("保存到文件"), QDir::homePath(), tr("jpeg格式文件(.jpg)"));
  37.     if(fileName.isEmpty()) {
  38.     ui->statusbar->showMessage(tr("保存操作已取消"), 5000);
  39.     return;
  40.     }
  41.     const QPixmap* pixmap=ui->label_Display->pixmap();
  42.     if(pixmap) {
  43.     pixmap->save(fileName);
  44.     ui->statusbar->showMessage(tr("保存成功"), 5000);
  45.     }
  46. }

复制代码

就是摄像头没加载出来

各位大佬帮忙看看

这一样是你写的还是抄的 设备号和你一样么
camera=new QCamera("@device:pnp:\?\usb#vid_0edc&pid_2076&mi_00#6&3455a94a&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global",this);

hep 发表于 2022-8-9 17:44
这一样是你写的还是抄的 设备号和你一样么
camera=new QCamera("@device:pnp:\?%usb#vid_0edc&pid_2076&m …

确认过了 大佬 一致

hep 发表于 2022-8-9 17:44
这一样是你写的还是抄的 设备号和你一样么
camera=new QCamera("@device:pnp:\?%usb#vid_0edc&pid_2076&m …

其他地方有没有可能还有问题呢

qt QCamera 我也没用过  参考下这个
https://blog.51cto.com/xiaohaiwa/5380268
1. pro 文件的依赖
2. new QCamera 如参 设置成this 试试
果然MJJ们神通广大

hep 发表于 2022-8-9 18:01
qt QCamera 我也没用过  参考下这个
https://blog.51cto.com/xiaohaiwa/5380268
1. pro 文件的依赖

ok

hep 发表于 2022-8-9 18:01
qt QCamera 我也没用过  参考下这个
https://blog.51cto.com/xiaohaiwa/5380268
1. pro 文件的依赖

再问一下大佬 ui界面是不是语言添加信息槽啥的,ui界面需要做啥

竟然用的不是vc++ 6.0,我要给差评了

akatom 发表于 2022-8-9 18:09
再问一下大佬 ui界面是不是语言添加信息槽啥的,ui界面需要做啥

QT UI 界面就是和用户交互的逻辑
比如用户点个按钮 触发截图的逻辑
.ui 文件是用 QT编辑器拖动出来的,里面都是 xml描述信息,用熟练了效率很高