Qt笔记-各种技巧

本文介绍了Qt编程中的一些实用技巧,包括cout的自定义用法、Halcon库的引入、跨线程信号与槽的连接方式、不同类型的connect用法详解、循环控制关键字的区别、QString与HTuple之间的转换方法、解决Qt编译错误的方案、获取系统时间的方法及如何通过Qt打开指定路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. cout的用法:

#include<QDebug>
#define cout qDebug()<< "["<<__FILE__<< ":"<<__LINE__<< "]"

2.Halcon的引用:

#include "HalconCpp.h"
using namespace HalconCpp;

3.夸线程使用信号与槽:后面一定加上 Qt::BlockingQueuedConnection

connect(m_pCapImgProcs[0], SIGNAL(captured(HObject)), this, SLOT(on_imageProcess0(HObject))  , Qt::BlockingQueuedConnection);
connect(m_pCapImgProcs[1], SIGNAL(captured(HObject)), this, SLOT(on_imageProcess1(HObject)), Qt::BlockingQueuedConnection);
connect(this, SIGNAL(delImg0(HObject)), m_pArithmetic[0],SLOT(Recognise(HObject)), Qt::BlockingQueuedConnection);

4.需要用指针的地方用&代替。如下:

5.connect的各种形式:

 //connect(this, &MainWindow::startImgCap0, m_pCapImgProcs[0], &ImageCaptureProcs::ImageCapture(0));
    //connect(this, &MainWindow::startImgCap1, m_pCapImgProcs[1], &ImageCaptureProcs::ImageCapture(1));
    connect(this,SIGNAL(startImgCap0(int)), m_pCapImgProcs[0], SLOT(ImageCapture(int)) );  //加了Qt::BlockingQueuedConnection 会阻塞窗口显示
    connect(this, SIGNAL(startImgCap1(int)), m_pCapImgProcs[1], SLOT(ImageCapture(int)) );

6.  Continue ,Break,Return这三个关键字的区别: 

 return :直接跳出当前的方法,返回到该调用的方法的语句处,继续执行

 break:在循环体内结束整个循环过程

 continue :结束本次的循环,直接进行下一次的循环

7.QString转HTuple:

HTuple str1=str.toStdString().c_str();

8.Qt: error: C2001: 常量中有换行符

解决方案:

只要在末尾加一个空格,让最后一个中文汉字与双引号隔开,这样便不会再报错

如:  

Log_Mess("设置低电平失败 ");

9 .获取系统时间

 QString current_time = QDateTime::currentDateTime().toString("hh:mm:ss.zzz");  //("yyyy-MM-dd hh:mm:ss:zzz");
        Log_Mess(current_time+QString("相机 %1 发送NG信号失败").arg(nCamID+1));

10.打开指定路径---做查看图片用

#include <QDesktopServices>
void MainWindow::on_pushButton_4_clicked()
{
    QString curPath=QDir::currentPath();   //获取系统当前目录
   QDesktopServices::openUrl(QUrl::fromLocalFile(curPath));  //支持中文路径
    
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值