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 图形化安装 ...
随机推荐
- vue v-on:click传递动态参数
最近项目中要为一个循环列表动态传送当前点击列的数据,查了很久资料也没有一个完美的解决方案, 新手只能用vue的事件处理器与jquery的选择器做了一个不伦不类的方案,居然也能解决这个问题,作此记录留待 ...
- spring mvc构建WEB应用程序入门例子
在使用spring mvc 构建web应用程序之前,需要了解spring mvc 的请求过程是怎样的,然后记录下如何搭建一个超简单的spring mvc例子. 1) spring mvc的请求经历 请 ...
- Java随机数技巧-新手篇
package 向家康; import java.util.concurrent.ThreadLocalRandom; public class 练习21 { public static void m ...
- ConcurrentHashMap如何保证线程安全
以前看过HashMap的内部实现,知道HashMap是使用Node数组+链表+红黑树的数据结构来实现,如下图所示.但是HashMap是非线程安全,在多线程环境不能够使用. 不过JDK在其并发包中为我们 ...
- 为VLC增加在线字幕插件VLSub
VLC的在在线字幕插件VLSub,官网:https://github.com/exebetche/vlsub. 原理是通过搜索全球最大的字幕网站https://www.opensubtitles.or ...
- C# 使用xenocode混淆加密【转】
http://www.cnblogs.com/chendaoyin/archive/2013/05/03/3056692.html 之前就了解过混淆加密工具,但这还是第一次使用,选择了xenoco ...
- python matplotlib imshow热图坐标替换/映射
今天遇到了这样一个问题,使用matplotlib绘制热图数组中横纵坐标自然是图片的像素排列顺序, 但是这样带来的问题就是画出来的x,y轴中坐标点的数据任然是x,y在数组中的下标, 实际中我们可能期望坐 ...
- C#应用程序配置文件.config介绍
我们经常会希望在程序中写入一些配置信息,例如版本号,以及数据库的连接字符串等.你可能知道在WinForm应用程序中可以利用Properties.Settings来进行类似的工作,但这些其实都利用了Ap ...
- 【IE】IE对line-height 失效的的解决方案
微软的IE9 + Extjs3.1 确实头疼.在使用了line-height:20px 的Tree的样式,可是一直没有生效, 以下给出3中解决方式: 方案1.加padding-top: <div ...
- PC和手机怎么实现绝对居中?
示例1(懒人之家): http://www.51xuediannao.com/js/nav/360buy_nav.html 示例2(google官方):