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);

对显示中图像大小的重新调整

  1. 如果是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)的更多相关文章

  1. Eclipse+Qt开发环境设置(Linux和Win)

    文章摘要: Windows,Linux平台下安装使用Eclipse + QT4.4.3开发环境 Windows,Linux新建project时的配置(不使用QT预置项目类型,而是手工配置) 使用Ecl ...

  2. QT应用在windows和Linux平台的发布指南

    环境:QT5.4 Windows下Qt应用的发布 Qt安装路径为:C:\Qt\Qt5.4.0\5.4\mingw491_32\bin 首先确保这个路径不在环境变量中,否则可能不成功. 执行" ...

  3. 【Qt入门实践】Qt之哲学家问题(linux 多线程)

    转载请注明出处:http://blog.csdn.net/feng1790291543 linux多线程实现哲学家问题,依据哲学家吃饭.拿筷子.放下筷子...... watermark/2/text/ ...

  4. 创建QT CREATOR对话框报错 linux QT Creator :-1: error: cannot find -lGL

    装完QT5.4 及 QT Creator3.3 后 创建第一个QT Widgets Application(相当于窗体) 应用程序 报如上错误. 执行 sudo apt-get install lib ...

  5. Qt使用中碰到的问题

    1.发现table第一列在切换后变黑,或多了行数. 一般是编译出来的.exe文件所使用的qt的dll不匹配造成的.一定要使用编译时,所使用的那个版本的qt的dll.

  6. 使用Qt Creator进行linux远程调试

    序言 考虑到程序员在无桌面Linux的环境下编写C/C++程序,如果使用原生的Vim编辑和单步断点调试比较麻烦,不利于新手使用,所以笔者尝试使用Qt实现两台Linux电脑远程部署和调试.即程序员在调试 ...

  7. QT linux

    一. 如果你是服务器版的CentOS,我建议你安装一下图形界面 1. 首先安装X window: yum groupinstall 'X WindowSystem'2. 然后安装GNOME: yum ...

  8. 使用Qt Creator作为Linux IDE,代替Vim:实现两台Linux电脑远程部署和gdb调试(一台电脑有桌面系统,一台电脑无桌面系统)

      版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/libaineu2004/article/details/62423830 尊重作者,支持原创,如 ...

  9. 【Qt开发】Linux下Qt开发环境的安装与集成

    近期工作需要在Linux下用Qt进行C++开发,所以就在linux下尝试装QT开发环境.本人用的linux是CentOS 6.5.现在对安装过程做出总结.有两种安装方式,下面分别详述: 1 图形化安装 ...

随机推荐

  1. Codeforces 576D Flights for Regular Customers(矩阵加速DP)

    题目链接  Flights for Regular Customers 首先按照$d$的大小升序排序 然后分成$m$个时刻,每条路径一次处理过来. $can[i][j]$表示当前时刻$i$能否走到$j ...

  2. tensorflow搭建神经网络基本流程

    定义添加神经层的函数 1.训练的数据2.定义节点准备接收数据3.定义神经层:隐藏层和预测层4.定义 loss 表达式5.选择 optimizer 使 loss 达到最小 然后对所有变量进行初始化,通过 ...

  3. Celery 启动报错 can_read() got an unexpected keyword argument timeout

    问题: Celery 启动报错 can_read() got an unexpected keyword argument timeout 方案:更改redis版本和celery版本,我使用下面的ce ...

  4. Qt跨平台的一个例程

    我的同事penk在近期北京的Hackathon展示了一个在多平台的例程. 非常多开发人员对这个挺感兴趣的. 今天我就把这个资源介绍给大家. 这是同一个用Qt写的应用.能够同一时候在Ubuntu Des ...

  5. LeetCode – Copy List with Random Pointer

    A linked list is given such that each node contains an additional random pointer which could point t ...

  6. pycharm5.0 激活方式

    Pycharm5注册方式   0x1 ,安装 0x2 , 调整时间到2038年. 0x3 ,申请30天试用 0x4, 退出pycharm 0x5, 时间调整回来. ##注册方法2### 注册方法:   ...

  7. 使用react全家桶制作博客后台管理系统 网站PWA升级 移动端常见问题处理 循序渐进学.Net Core Web Api开发系列【4】:前端访问WebApi [Abp 源码分析]四、模块配置 [Abp 源码分析]三、依赖注入

    使用react全家桶制作博客后台管理系统   前面的话 笔者在做一个完整的博客上线项目,包括前台.后台.后端接口和服务器配置.本文将详细介绍使用react全家桶制作的博客后台管理系统 概述 该项目是基 ...

  8. 【每日Scrum】第五天(4.26) TD学生助手Sprint2站立会议

    站立会议 组员 昨天 今天 困难 签到 刘铸辉 (组长) 今天增加了几个页面的子菜单,然后设计了几个要用的界面 今天和楠哥做了课程事件和日历表操作的例子,并尝试做时间表和日历表的数据库设计 安卓的数据 ...

  9. Linaro/Yocto/Openwrt

    http://en.wikipedia.org/wiki/Linaro Linaro From Wikipedia, the free encyclopedia     This article ap ...

  10. vim调试

    首先,想调试一个程序的话,输入以下命令: guest-djjtew@ubuntu:~$ python3 -m pdb 1.py 这时候就停止了,等待着你的输入,然后输入"l"的话, ...