qt使用中的一些问题(linux)
ui_xxx.h的问题
工程中(工作空间)中包含的ui_xxx.h文件是系统自动生成的。这个是xxx.ui的创建文件来的,xxx.ui界面上的都是ui_xxx.h在控制的,在项目里是不显示这个头文件的,如果你想用xxx.ui界面的控件,那你直接包含:ui_xxx.h就可以了。
对窗体中所有按钮进行设置
1.对窗体中所有的按钮文字置左
qApp->setStyleSheet("QPushButton{text-align : left;}");
2.将窗体中所有按钮置成圆角的
qApp->setStyleSheet("QPushButton{border:2px groove gray;border-radius:10px}");
解决显示乱码的问题
QString temp;
temp = temp.fromLocal8Bit("摄像头已打开");
this->ui->pushButton_17->setText(temp);
摄像头需要重新插拔,软件需要重启才能打开摄像头的问题
报错类似如下
libv4l2: error setting pixformat: 设备或资源忙
Unable to query number of channels
解决方法是在程序中加入下面语句
#include <QtGui>
#include <QMessageBox>
QProcess *RosCloseRosmaster = new QProcess;
RosCloseRosmaster->start("killall -9 motion");
cvReleaseImage(&pFrame);
cvReleaseCapture(&pCapture);
对显示中图像大小的重新调整
如果是Mat格式的话可以直接调用opencv的调整函数
cv::Mat image1 = img.clone();
int myheight =ui->label->height();
int mywidth = ui->label->width();
cv::resize(img, image1, cv::Size(mywidth, myheight));
IplImage与Mat之间的转换
直接使用转换方法
Mat img;
IplImage *src;
src=\'#\'" /p>
但是如果在单独定义的函数中进行转换的话会出现如下报错
taking address of temporary [-fpermissive]
这是因为操作取了临时变量的地址。返回后临时变量已经“消失”了,你不能再使用了。所以报错。
解决方法:设置中间变量:
IplImage temp = (IplImage)dst1;
IplImage *qImg=&temp;
所以最后变为
void face_dialog::matToIpl(cv::Mat rosImage)
{
IplImage temp = (IplImage)rosImage;
fromRosImage = &temp;
}
Mat转换到QImage
cv::Mat img1(psmallface, true); //将psmallface图像深拷贝给img1,如果为false则为浅拷贝
QImage img2;
int nChannel=img1.channels();
if(nChannel==3)
{
cv::cvtColor(img1,img1,CV_BGR2RGB);
img2 = QImage((const unsigned char*)img1.data, img1.cols, img1.rows, QImage::Format_RGB888);
}
else if(nChannel==4||nChannel==1)
{
img2 = QImage((const unsigned char*)img1.data, img1.cols, img1.rows, QImage::Format_ARGB32);
}
如果图像出现扭曲的话,将代码改为如下
Mat rgb;
if(img1.channels() == 3) // RGB image
{
cvtColor(img1,rgb,CV_BGR2RGB);
img2 = QImage((const uchar*)(rgb.data), //(const unsigned char*)
rgb.cols,rgb.rows,
rgb.cols*rgb.channels(), //new add
QImage::Format_RGB888);
}
else // gray image
{
img2 = QImage((const uchar*)(img1.data),
img1.cols,img1.rows,
img1.cols*img1.channels(), //new add
QImage::Format_Indexed8);
}
qt中msleep(),usleep(),sleep()等的头文件是unistd.h
使用vector(float类型)进行label显示
gl_ScanData.push_back(i); //将i的数压入vector末尾
ui->message_label->setText(QString("%1").arg(gl_ScanData[359])); //使用label进行显示第359个位置数
qt使用中的一些问题(linux)的更多相关文章
- Eclipse+Qt开发环境设置(Linux和Win)
文章摘要: Windows,Linux平台下安装使用Eclipse + QT4.4.3开发环境 Windows,Linux新建project时的配置(不使用QT预置项目类型,而是手工配置) 使用Ecl ...
- QT应用在windows和Linux平台的发布指南
环境:QT5.4 Windows下Qt应用的发布 Qt安装路径为:C:\Qt\Qt5.4.0\5.4\mingw491_32\bin 首先确保这个路径不在环境变量中,否则可能不成功. 执行" ...
- 【Qt入门实践】Qt之哲学家问题(linux 多线程)
转载请注明出处:http://blog.csdn.net/feng1790291543 linux多线程实现哲学家问题,依据哲学家吃饭.拿筷子.放下筷子...... watermark/2/text/ ...
- 创建QT CREATOR对话框报错 linux QT Creator :-1: error: cannot find -lGL
装完QT5.4 及 QT Creator3.3 后 创建第一个QT Widgets Application(相当于窗体) 应用程序 报如上错误. 执行 sudo apt-get install lib ...
- Qt使用中碰到的问题
1.发现table第一列在切换后变黑,或多了行数. 一般是编译出来的.exe文件所使用的qt的dll不匹配造成的.一定要使用编译时,所使用的那个版本的qt的dll.
- 使用Qt Creator进行linux远程调试
序言 考虑到程序员在无桌面Linux的环境下编写C/C++程序,如果使用原生的Vim编辑和单步断点调试比较麻烦,不利于新手使用,所以笔者尝试使用Qt实现两台Linux电脑远程部署和调试.即程序员在调试 ...
- QT linux
一. 如果你是服务器版的CentOS,我建议你安装一下图形界面 1. 首先安装X window: yum groupinstall 'X WindowSystem'2. 然后安装GNOME: yum ...
- 使用Qt Creator作为Linux IDE,代替Vim:实现两台Linux电脑远程部署和gdb调试(一台电脑有桌面系统,一台电脑无桌面系统)
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/libaineu2004/article/details/62423830 尊重作者,支持原创,如 ...
- 【Qt开发】Linux下Qt开发环境的安装与集成
近期工作需要在Linux下用Qt进行C++开发,所以就在linux下尝试装QT开发环境.本人用的linux是CentOS 6.5.现在对安装过程做出总结.有两种安装方式,下面分别详述: 1 图形化安装 ...
随机推荐
- 本地测试IIS,Post调用接口
最近在学习三种调用接口方式,POST,Socket,Webserivce,今天刚写完POST方式所以就分享下,欢迎高手指点. public string strResult = "" ...
- 东方14模拟赛之noip2015/day1/3/神奇的幻方
总时间限制: 10000ms 单个测试点时间限制: 1000ms 内存限制: 128000kB 描述 幻方是一种很神奇的N*N 矩阵:它由数字 1,2,3, … …,N*N 构成,且每行.每列及 ...
- Android-Service基本用法、AIDL、Binder连接池详解
本文介绍Service与Activity之间的通信,文章包含以下内容: 一.Service基本用法 二.通过AIDL实现Service与Activity跨进程通信 三.Binder连接池 四.使用Me ...
- Android图片缓存之初识Glide(三)
前言: 前面总结学习了图片的使用以及Lru算法,今天来学习一下比较优秀的图片缓存开源框架.技术本身就要不断的更迭,从最初的自己使用SoftReference实现自己的图片缓存,到后来做电商项目自己的实 ...
- css3 - 动态伪类
动态伪类分为以下几种: 1. hover(经过) 2. active(点击后) 3. focus(聚焦) - input专用 4. visited(访问后) 使用:
- 关于CUDA两种API:Runtime API 和 Driver API
CUDA 眼下有两种不同的 API:Runtime API 和 Driver API,两种 API 各有其适用的范围. 高级API(cuda_runtime.h)是一种C++ ...
- ios You app information could not be saved. Try again. If the problem persists, contact us
ios You app information could not be saved. Try again. If the problem persists, contact us 大概意思:你的a ...
- 读陈浩的《C语言结构体里的成员数组和指针》总结,零长度数组
原文链接:C语言结构体里的成员数组和指针 复制例如以下: 单看这文章的标题,你可能会认为好像没什么意思.你先别下这个结论,相信这篇文章会对你理解C语言有帮助.这篇文章产生的背景是在微博上,看到@Lar ...
- java对象访问
下面这句代码: Object obj = new Object(); 对象引用在栈中,对象实体存在堆中,引用的方式有两种,分别是通过句柄访问对象和通过直接指针访问对象. Sun HotSpot使用第二 ...
- Chrome 前端 插件
本文内容都来源于偶整理的fetool. 想让更多使用Chrome的小伙伴,体验到这些令人愉悦的小工具,所以单独整理了这篇文章. 如果你是 前端/服务端/设计/面向Github编程/视觉控,相信下列的插 ...