QT开发实战一:图片显示
测试平台
宿主机平台:Ubuntu 12.04.4 LTS
目标机:Easy-ARM IMX283
目标机内核:Linux 2.6.35.3
QT版本:Qt-4.7.3
Tslib版本:tslib-1.0.0
QT使用小结
整个测试均放在上节制作的文件系统,通NFS根文件系统来进行测试
1.tslib编译
编译与安装
- ./autogen.sh
- ./configure --prefix=$(pwd)/install --host=arm-linux ac_cv_func_malloc_0_nonnull=yes CC=arm-none-linux-gnueabi-gcc
- make
- make install
将安装文件拷贝到 /home/vmuser/workspace/vm_tools/tslib
修改 tslib/etc/ts.conf
2.qt-4.7.3源码编译
编译与安装
- ./configure -prefix /home/vmuser/workspace/vm_tools/qt-4.7.3-arm -opensource -confirm-license -release -shared -embedded arm -xplatform qws/linux-arm-gnueabi-g++ -depths 16,18,24,32 -fast -lrt -little-endian -optimized-qmake -pch -qt-sql-sqlite -qt-zlib -qt-libjpeg -qt-libpng -qt-freetype -no-largefile -no-accessibility -no-qt3support -no-webkit -no-mmx -no-3dnow -no-sse -no-sse2 -no-glib -no-libtiff -no-libmng -no-openssl -nomake examples -nomake docs -nomake demos -no-separate-debug-info -no-qvfb -no-cups -no-gtkstyle -no-xrender -no-glib -qt-mouse-pc -qt-mouse-linuxtp -qt-mouse-tslib -qt-mouse-linuxinput -qt-kbd-linuxinput -qt-gfx-linuxfb -qt-gfx-transformed -D QT_QWS_CLIENTBLIT -I /home/vmuser/workspace/vm_tools/tslib/include -L /home/vmuser/workspace/vm_tools/tslib/lib
- 修改 qt-everywhere-opensource-src-4.7.3/mkspecs/qws/linux-arm-gnueabi-g++/qmake.conf 文件
然后 编译、安装
make
make install
添加 qmake-arm 变量别名,便于以后编译程序移植
- vi ~/.bashrc
文件末尾添加:
- alias qmake-arm=/home/vmuser/workspace/vm_tools/qt-4.7.3-arm/bin/qmake
3. 移植tslib和qt的库
1. 拷贝库文件到文件系统
/home/vmuser/workspace/vm_tools/tslib
/home/vmuser/workspace/vm_tools/qt-4.7.3-arm
到 /home/vmuser/workspace/myrootfs/usr/local
2. 修改启动初始化脚本,配置 qt 运行环境
修改 myrootfs/etc/profile
- export TSLIB_ROOT=/usr/local/tslib
- export TSLIB_TSDEVICE=/dev/input/event0
- export TSLIB_CALIBFILE=/etc/pointercal
- export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
- export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
- export TSLIB_FBDEVICE=/dev/fb0
- export QWS_MOUSE_PROTO=tslib:/dev/input/event0
- export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib
- export QTDIR=/usr/local/qt-4.7.3
- export LD_LIBRARY_PATH=$QTDIR/lib:$QTDIR/plugins/imageformats:$LD_LIBRARY_PATH
- export QT_PLUGIN_PATH=$QTDIR/plugins
- export QT_QWS_FONTDIR=$QTDIR/lib/fonts
要同时支持鼠标时添加
export QWS_MOUSE_PROTO="tslib:/dev/input/event0 MouseMan:/dev/input/mouse0"
4. NFS跟文件系统启动测试
新建 home 文件夹,将QT交叉编译后的程序拷贝到 home
进入uboot 设置NFS启动参数
- setenv bootargs 'root=/dev/nfs rw console=ttyAM0,115200n8 nfsroot=192.168.1.123:/home/vmuser/workspace/myrootfs ip=192.168.1.124:192.168.1.123:192.168.1.254:255.255.255.0:epc.zlgmcu.com:eth0:off mem=64M'
- saveenv
然后 reset 开机从 myrootfs 启动
QT编程实例1: 图片显示
ui 界面设置如下,使用水平、垂直布局工具对齐
showpic.cpp代码如下:
- #include "showpic.h"
- #include "ui_showpic.h"
- showpic::showpic(QWidget *parent) :
- QWidget(parent),
- ui(new Ui::showpic)
- {
- ui->setupUi(this);
- QPixmap pix = QPixmap("/home/picture/bk1.jpg");
- pix.scaledToHeight(200);
- pix.scaledToWidth(300);
- ui->labelPic->setPixmap(pix);
- ui->label->setText("123456");
- }
- showpic::~showpic()
- {
- delete ui;
- }
- void showpic::on_pBtnShow_clicked()
- {
- QPixmap pix = QPixmap("/home/picture/bk1.jpg");
- pix.scaledToHeight(200);
- pix.scaledToWidth(300);
- ui->labelPic->setPixmap(pix);
- ui->label->setText("123456");
- }
- void showpic::on_pBtnHide_clicked()
- {
- ui->labelPic->clear();
- ui->label->setText("hello,world...");
- }
main.cpp
- #include <QtGui/QApplication>
- #include "showpic.h"
- #include <QTextCodec> //中文编码支持头文件
- #include <QtGui/QLabel>
- #include "ui_showpic.h" //ui头文件
- //using namespace Ui;
- int main(int argc, char *argv[])
- {
- QApplication a(argc, argv);
- QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
- showpic *window = new showpic;
- // window->resize(pix.height(), pix.width());
- window->setWindowTitle("图片");
- window->show();
- // window->showFullScreen(); //全屏显示
- return a.exec();
- }
QT开发实战一:图片显示的更多相关文章
- 微信小程序开发——base64位图片显示问题
前言: 目前小程序项目需要后端借口提供验证码图片,后端是以base64位返回的,按照H5的做法,前边拼上 data:image/png;base64, 应该就可以了,关键代码如下: H5: <i ...
- Qt添加窗口背景图片、Label图片显示、、Label文字显示
一.添加窗口背景图片 重写MainWindow绘制事件 void MainWindow::paintEvent(QPaintEvent *event) { QPainter painter(this) ...
- 在VC6中基于dll开发插件用于各种图片显示(BMP/TGA/JPG/GIF/PNG/TIF/ICO/WMF/EMF/...)
一.图片显示 图片显示的方法: 1. 直接写程序 2. 第3方库 3. 调用COM组件的IPicture接口 4. 使用MFC的CPictureHolder类 5. 使用GDI+的CImag ...
- 图解android开发在界面上显示图片
图解android开发在界面上显示图片<申明:转自百度> <原文章地址:http://jingyan.baidu.com/article/49711c6153a277fa441b7c ...
- [转]使用QT开发GoogleMap瓦片显示和下载工具
第一节 之前做项目的时候经常遇到需要大量地图背景数据,然后没有数据被逼着去Google上下载瓦片数据在拼接成整张影像的工作,其实遥感影像晚上有很多可以下载到的,但是大部分是作为研究用的,作为GIS的背 ...
- 使用 Qt 获取 UDP 数据并显示成图片(2)
本文首发于 BriFuture 的 个人博客 在我的前一篇文章 使用 Qt 获取 UDP 数据并显示成图片 中,我讲了如何用 Python 模拟发送数据,如何在 Qt 中高效的接收 UDP 数据包并将 ...
- OpenCV【2】---读取png图片显示到QT label上的问题
问题一: 操作图片test.png是一个365x365的PNG图片 通过OpenCV自带的GUI显示出来图像是没问题的,例如以下操作代码所看到的: QStringfileName=QFileD ...
- 【Qt开发】【ARM-Linux开发】 QT在ARM上显示字体的问题
在PC机上利用QT开发的应用程序在设置字体时,在PC上运行,可根据自己的设置,字体随之变大或变小.而移植到ARM上运行时发现,显示字体与所设置的字体不用,字体普遍偏小.经过上网搜索发现,是环境变量字库 ...
- 【Qt开发】解决Qt5.7.0中文显示乱码的问题
[Qt开发]解决Qt5.7.0中文显示乱码的问题 亲测可用: 乱码主要是编码格式的问题,这里可以通过Edit菜单中选择当前文档的编码方式,选择按照UTF-8格式保存,然后输入对应的中文,保存,然后运行 ...
随机推荐
- 【Azure 应用服务】App Service 运行状况健康检查功能简介 (Health check)
通过Azure App Service门户,启用Health Check来监视应用服务的实例,当发现其中一个实例处于不健康(unhealthy)状态时,通过重新路由(即把有问题的实例从负载均衡器中移除 ...
- AuthorizationFailed""The client '***' with object id '***' does not have authorization to perform action 'or the scope is invalid. If access was recently granted, please refresh your credentials
Warning SyncLoadBalancerFailed 4m9s (x11 over 29m) service-controller Error syncing load balanc ...
- 利用MySQL原数据信息批量转换指定库数据表生成Hive建表语句
1.写出文件工具类 package ccc.utile; import java.io.*; /** * @author ccc * @version 1.0.0 * @ClassName Write ...
- docker容器网络bridge
我们知道docker利用linux内核特性namespace实现了网络的隔离,让每个容器都处于自己的小世界里面,当这个小世界需要与外界(宿主机或其他容器)通信的时候docker的网络就发挥作用了,这篇 ...
- Vue 实现微信提示浏览器转跳功能
<template> <div class="main"> <div :class="show==true ? 'block':'block ...
- SpringMVC学习08(拦截器)
8.拦截器 概述 SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理.开发者可以自己定义一些拦截器来实现特定的功能. 过滤器与拦截器的区别: ...
- MySQL-01-简介以及安装
Mysql简介 什么是数据 数据:文字.图片.视频... 人类认知的数据表现方式 计算机:二进制.16进制的机器语言 基于数据的重要性和复杂性的不同,我们可能有不同的管理方式 哪些数据是适合存储到数据 ...
- 【笔记】求数据前n个主成分以及对高维数据映射为低维数据
求数据前n个主成分并进行高维数据映射为低维数据的操作 求数据前n个主成分 先前的将多个样本映射到一个轴上以求使其降维的操作,其中的样本点本身是二维的样本点,将其映射到新的轴上以后,还不是一维的数据,对 ...
- Nmap 常用命令及抓包分析
1.主机发现:主机发现也称为ping扫描,但是Nmap中主机发现的技术已经不是简单的采用ping工具发送简单的ICMP回声请求报文.用户完全可以通过使用列表扫描(-sL)或者通过关闭ping(-P0) ...
- spring boot 整合JPA bean注入失败
有时候报的错误让你匪夷所思,找错误得学会找根.源头在哪里? 比如:我们刚开始看的错误就是 org.springframework.beans.factory.UnsatisfiedDependency ...