文档库 最新最全的文档下载
当前位置:文档库 › Linux下用QT开发音乐播放器

Linux下用QT开发音乐播放器

Linux下用QT开发音乐播放器
Linux下用QT开发音乐播放器

嵌入式课程设计报告

—在Linux下开发音乐播放器

李荣贵141578

一.概述

按课程要求,在Linux环境下开发了一款简易的音乐播放器软件,名为“Mini音乐播放器”,运用工具如下:

操作系统:虚拟机中安装xubuntu-14.04.1

IDE:QT Creator3.0.1

该播放器具有如下功能:

1.从本地导入歌曲到歌曲列表中

2.清空歌曲列表

3.删除歌曲列表中选中的歌曲

4.用进度条显示歌曲播放的进度,并显示时间

5.用“播放/暂停”、“停止”、“上一曲”、“下一曲”四个按钮对歌曲进行控制

6.用滑动器对歌曲音量进行控制

7.右键会弹出菜单,可以对程序进行相应的控制

二.项目展示

1.虚拟机截图

2.项目开发界面

3.软件发行后运行情况

隐藏界面部件后

三.程序设计源码分析

接下来展示源代码中的核心代码,其中包括头文件以及cpp文件中的构造函数,源代码我已经上传到网上,有需要的可以下载,链接: https://www.wendangku.net/doc/8f4908243.html,/s/1eQgwlUU。

widget.h

-----------------------------------------------------------------------------------------#ifndef WIDGET_H

#define WIDGET_H

#include

#include

#include

namespace Ui{

class Widget;

}

class Widget:public QWidget

{

Q_OBJECT

public:

explicit Widget(QWidget*parent=0);

~Widget();

private slots:

void addSongs();//该槽函数功能是从本地导入音乐文件

void playPause();//该槽函数是用来响应“播放/暂停”按钮

void playStop();//该槽函数是用来响应“停止”按钮

void playNext();//该槽函数是用来响应“下一曲”按钮

void playPrevious();//该槽函数是用来响应“上一曲”按钮

void posChanged(qint64pos);//当歌曲播放进度变化时,该槽函数响应,功能是让进度条与歌曲播放进度保持一致

void durChanged(qint64dur);//该槽函数功能是当歌曲总长度改

变(即切歌)时,设置进度条最大值为歌曲长度(以ms为单位)void setPos(int pos);//该槽函数功能是当拖动进度条改变进度时,设置歌曲的播放进度与之保持一致

void clearList();//清空歌曲列表

void delectSong();//删除歌曲列表中选中的歌曲

void volumeSilence();//响应点击音量按钮,进而设置静音/正常

void setV ol(int vol);//拖动音量滑动条时,设置歌曲音量与之保持一致

void hideShow();//隐藏/显示界面上的部件

void redV olume();//减小音量

void addV olume();//增大音量

private:

Ui::Widget*ui;

private:

QMediaPlayer*player;//QT中提供的用来保存源文件的类,该类提供大量API供调用

QMediaPlaylist*playList;//QT提供的保存播放文件的队列

//以下均为弹出菜单中动作

QAction*action_hideShow;

QAction*action_addSongs;

QAction*action_playPause;

QAction*action_stop;

QAction*action_previous;

QAction*action_next;

QAction*action_addVolume;

QAction*action_redV olume;

QAction*action_quit;

protected:

void contextMenuEvent(QContextMenuEvent*);//该函数为虚函数,对其进行重写,可实现右键单击界面时弹出菜单

};

#endif//WIDGET_H

Widget.cpp

-----------------------------------------------------------------------------------------#include"widget.h"

#include"ui_widget.h"

#include

#include

#include

#include

Widget::Widget(QWidget*parent):

QWidget(parent),

ui(new Ui::Widget)

{

ui->setupUi(this);

//下面几行作用是插入一张图片到播放器界面作为背景

this->setAutoFillBackground(true);

QPalette palette;

palette.setBrush(QPalette::Background,QBrush(QPixmap(":/images/inter face.jpg")));

this->setPalette(palette);

ui->volumeSlider->setRange(0,100);

this->setWindowTitle(tr("mini音乐播放器"));

this->playList=new QMediaPlaylist(this);

this->player=new QMediaPlayer(this);

player->setPlaylist(playList);//将player与playList连接

player->setV olume(50);

ui->volumeSlider->setValue(50);

//以下几行设置按钮的属性

ui->addSongsButton->setStyleSheet("QPushButton{border-radius:5px;bo rder-width:0px;}");

ui->clearButton->setStyleSheet("QPushButton{border-radius:5px;border-width:0px;}");

ui->delectButton->setStyleSheet("QPushButton{border-radius:5px;borde r-width:0px;}");

ui->volumeButton->setStyleSheet("QToolButton{border-radius:5px;bord er-width:0px;}");

//信号与槽的连接

QObject::connect(ui->volumeSlider,SIGNAL(valueChanged(int)),this,SL

OT(setVol(int)));

QObject::connect(ui->addSongsButton,SIGNAL(clicked()),this,SLOT(ad dSongs()));

QObject::connect(ui->playPauseButton,SIGNAL(clicked()),this,SLOT(pl ayPause()));

QObject::connect(ui->stoptButton,SIGNAL(clicked()),this,SLOT(playSt op()));

QObject::connect(ui->previousButton,SIGNAL(clicked()),this,SLOT(pla yPrevious()));

QObject::connect(ui->nextButton,SIGNAL(clicked()),this,SLOT(playNe xt()));

QObject::connect(player,SIGNAL(durationChanged(qint64)),this,SLOT( durChanged(qint64)));

QObject::connect(player,SIGNAL(positionChanged(qint64)),this,SLOT( posChanged(qint64)));

QObject::connect(ui->processSlider,SIGNAL(valueChanged(int)),this,SL OT(setPos(int)));

QObject::connect(ui->clearButton,SIGNAL(clicked()),this,SLOT(clearLi st()));

QObject::connect(ui->delectButton,SIGNAL(clicked()),this,SLOT(delect Song()));

QObject::connect(ui->volumeButton,SIGNAL(clicked()),this,SLOT(volu

meSilence()));

//设置按钮属性

ui->stoptButton->setStyleSheet("border:2px groove

gray;border-radius:10px;padding:2px4px;");

ui->playPauseButton->setStyleSheet("border:2px groove

gray;border-radius:10px;padding:2px4px;");

ui->previousButton->setStyleSheet("border:2px groove

gray;border-radius:10px;padding:2px4px;");

ui->nextButton->setStyleSheet("border:2px groove

gray;border-radius:10px;padding:2px4px;");

//构造相应的动作,用于右键弹出对话框

action_hideShow=new QAction(tr("隐藏/显示窗口部件"),this); QObject::connect(action_hideShow,SIGNAL(triggered()),this,SLOT(hide Show()));

action_addSongs=new QAction(tr("添加本地歌曲"),this);

action_addSongs->setShortcut(tr("Ctrl+I"));

QObject::connect(action_addSongs,SIGNAL(triggered()),this,SLOT(add Songs()));

action_playPause=new QAction(tr("播放/暂停"),this);

action_playPause->setShortcut(tr("Ctrl+Enter"));

QObject::connect(action_playPause,SIGNAL(triggered()),this,SLOT(pla yPause()));

action_stop=new QAction(tr("停止"),this);

action_stop->setShortcut(tr("Ctrl+S"));

QObject::connect(action_stop,SIGNAL(triggered()),this,SLOT(playStop() ));

action_previous=new QAction(tr("上一曲"),this);

action_previous->setShortcut(tr("Ctrl+Left"));

QObject::connect(action_previous,SIGNAL(triggered()),this,SLOT(play Previous()));

action_next=new QAction(tr("下一曲"),this);

action_next->setShortcut(tr("Ctrl+Right"));

QObject::connect(action_next,SIGNAL(triggered()),this,SLOT(playNext ()));

action_addVolume=new QAction(tr("音量+(5%)"),this);

action_addVolume->setShortcut(tr("Ctrl+Up"));

QObject::connect(action_addV olume,SIGNAL(triggered()),this,SLOT(ad dV olume()));

action_redV olume=new QAction(tr("音量-(5%)"),this);

action_redV olume->setShortcut(tr("Ctrl+Down"));

QObject::connect(action_redV olume,SIGNAL(triggered()),this,SLOT(red Volume()));

action_quit=new QAction(tr("退出"),this);

QObject::connect(action_quit,SIGNAL(triggered()),this,SLOT(close())); }

-----------------------------------------------------------------------------------------

四.课程设计总结

由于对Linux系统不熟悉,并且是第一次开发音乐播放器类软件,在开发过程中遇到了很多问题,有些问题在网上不能找到有效的解决办法,需要自己认真思考。通过这次的课程设计,我充分认识到在计算机领域实践的重要性,在实践中不断学习,认真思考,不断积累经验,才能人自己成长。

qt程序在linux console模式下运行

Qt程序在linux Console模式下运行 原文链接:在x86非图形界面下运行QtEmbedded程序 众所周知,一般我们在桌面环境下可以使用qvfb这个工具作为运行QtEmbedded程序的模拟器环境,但我们今天不讲这些大家都知道的事情。 回顾一下QtEmbedded对系统以及硬件的要求,一般来说只有下面少少的几点: 1、 Linux内核+ framebuffer驱动+ socket支持 2、 /tmp可写 3、有合适的键盘和鼠标(触摸屏)驱动并做好与Qt的集成 4、合适的编译器和交叉编译工具链(toolchain) 那么聪明的同学已经想到了,为什么我们不能直接在桌面的linux系统中运行QtE程序呢?似乎QtE的要求我们的桌面系统一样可以满足亚。答案当然是肯定的。 一条一条来说的话, 1内核支持framebuffer和socket这一条大部分发行版默认的内核就可以; 2就不用说了;3在QtE的源码里自带了对普通桌面鼠标和键盘硬件的驱动;4对于X86系统,普通的gcc就可满足,一般linux发行版带的gcc版本也基本可以满足QtE编译的要求。 那么,怎么才能实现我们的想法呢?还是要一步一步按部就班来做。以笔者的Ubuntu 为例,介绍一下设置的具体步骤。 编译QtEmbedded 这一步编译和编译qvfb版本区别不大,只是不再需要configure的时候加-qvfb参 数,只用不加参数的configure足矣。 # tar -zxvf qt-em bedded-linux-opensource-src-4.5.1.tar.gz # cd qt-em bedded-linux-opensource-src-4.5.1 # ./configure -embedded x86 –qvfb // 我的编译情况是: ./confignre –prefix /work/Trolltech/QtEm bedded-4.5.1–no-o penssl # gmake # gmake install qt-em bedded 被安装在这个目录下/usr/local/Trolltech/QtEmbedded-4.5.1 设置环境变量: # vi ~/.bashrc 把下面的加上去 export QTEDIR=/usr/local/Trolltech/QtEm bedded-4.5.1 export PATH=/usr/local/Trolltech/QtEm bedded-4.5.1/bin:$PAT H export LD_LIBRARY_PATH=/usr/local/Trolltech/QtEm bedded-4.5.1/lib:$LD_LIBRA RY_PATH

Linux-Ubuntu 下 Qt 4.7.1静态编译

Qt的静态编译是本文介绍的内容,相比较来说windows的Qt静态编译比较容易,相反对于linux编译网上的文章实践下来都有这样那样的错误,这里简要小结一下自己的编译成果。 一、实验环境 1Ubuntu 10.04 2qt-x11-opensource-4.7.1.tar.gz 二、前期准备 在安装好Ubuntu 10.04后默认是没有安装程序编译软件包的,所以我们首先是要配置ubuntu。 配置方法:(推荐全程root用户模式) 1、首先调整网络设置使得机器可以上网(具体做法因人而异,这边就忽略不计) 2、需要配置的安装包:输入命令: 3apt-get install build-essential libpcap0.8-dev libx11-dev libfreetype6-dev 4libavahi-gobject-dev libSM-dev libXrender-dev libfontconfig-dev libXext-dev 三、静态编译Qt 1、下载qt-x11-opensource-4.7.1.tar.gz 2、解压缩qt-x11-opensource-4.7.1.tar.gz 3、配置path 输入命令: 5export PATH="$PATH:/usr/local/Trolltech/Qt-4.7.1/bin" 4、进入qt解压目录,配置configure命令:./configure -static -nomake demos

-nomake examples -nomake tools -no-exceptions 5、分别输入“o”和“y”以后进入编译阶段 6make 7make install 慢慢等吧…… 四、静态编译Qt程序 1、建立文件夹,然后写程序文件XX.cpp 2、qmake -project 3、生成pro文件后在里面加入CONFIG += static 4、qmake 5、生成Makefile后在cxxflags的=后插入-static 6、make 小结:实现Ubuntu 下Qt4.7.1静态编译的内容介绍完了,希望本篇的静态编译读你有所帮助。 【编辑推荐】 8Qt中根据不同版本号使用不同源码 9解析Qt资源文件使用 10深度解析QT 介绍跨平台界面库 11Windows下Qt 静态编译连接 12浅谈Qt 静态编译 原文参考:https://www.wendangku.net/doc/8f4908243.html,/symbian-270510.htm

【IT专家】Qt程序发行Linux版,软件打包知识(patchelf 工具修改依赖库,确认 qmake

本文由我司收集整编,推荐下载,如有疑问,请与我司联系Qt程序发行Linux版,软件打包知识(patchelf 工具修改依赖库,确 认qmake 2017/06/02 449 patchelf 工具可以修改已编译运行程序的依赖库位置和指定库链接器 ?patchelf --set-rpath ?patchelf --set-interpreter ?通过这个工具https://github/probonopd/linuxdeployqt如果自己编译不了,也可以下载现成的 ?https://github/probonopd/linuxdeployqt/releases ?运行./linuxdeployqt-2-x86_64.AppImage ShanbayDict 并为成功,生成的lib目录下的so文件很少。 ?运行./linuxdeployqt-2-x86_64.AppImage ShanbayDict -appimage 也未成功,但lib 生成了很多so文件 ?使用patchelf --set-rpath /opt/Qt-5.7-static/lib/:./lib ShanbayDict 修改rpath后,ShanbayDict可以独立运行了,连同lib一起拷贝到新安装的Ubuntu 16.04系统中,也能运行了。 ?ldd ShanbayDict 显示,rpath已经指向./lib目录 ?patchelf可以通过sudo apt installpatchelf 安装 ?2017年2月24日 ?Qt 5.8编译的Qt程序 ?设置环境变量,确认qmake -v 是自己使用的Qt版本,如果不是,解决办法是: ?export PATH=/home/lieefu/Qt5.8.0/5.8/gcc_64/bin:$PATH ?创建qml目录,把/home/lieefu/Qt5.8.0/5.8/gcc_64/qml 目录下用到的模块复制过来,我的app用到了三个QtQuick、QtQuick.2、QtMultimedia。 ?增加plugin中platforminputcontexts 包括libfcitxplatforminputcontextplugin.so文

【IT专家】《Linux与Qt程序设计》知识框架

本文由我司收集整编,推荐下载,如有疑问,请与我司联系 《Linux与Qt程序设计》知识框架 本文主要是通过一本书来大致了解Qt开发的框架,不对具体内容做详细分析。?1.首先弄清楚概念:定义- 以自己的话理解是什么- 实现的是什么功能- 用在哪些地方 ?2.前面认识到的知识点的特点- 代码实现- 工程代码分析 ?第一部分Linux基础知识第二部分Qt程序基础第5章OtCreator下载与安装5.1 QtCreator下载5.1.1 使用软件中心下载QtCreator5.1.2 访问Qt网站下载相关资源5.2 第一个Qt程序5.3 QtCreator介绍5.3.1 QtCreator界面介绍5.3.2 编译、调试、发布设置5.4 QtDesigner介绍第6章Qt基础6.1 Qt概述与特性6.1.1 Qt简介6.1.2 Qt特性 ?Qt SDK包括:Qt库、Qt Creator IDE、Qt工具:Qt Designer、Qt Linguist(消除国际化流程障碍)、Qt Assistant. ?6.2 Qt与Xll的关系6.2.1 什么是X116.2.2 Qt与Xl16.3 Qt与KDE的关系6.3.1 KDE简介6.3.2 Qt与KDE6.4 Qt库和组件 ?Qt SDK中主要包括类库、开发工具、平台相关支持、授权许可等。 ?其中类库包含了Qt的所有对外发布的功能组件: ?1)Core: Qt4的基本模块,定义了其他模块使用的Qt核心的非GUI类,所有其他模块都依赖于该模块。 ?2)GUI: 定义了图形用户界面类 ?3)WebKit:提供了一个在Qt中使用Web Browser的渲染与解析引擎。 ?4)Graphic View:提供的是一种Qt Model-View编程模式,既可以管理大数量的定制2D graphical items,又可以与它们交互,由于一个视图窗口可以把这些项绘制出来,并支持旋转与缩放。 ?5)Scripting:提供了对脚本(如:Java、Python、Perl、Ruby)的支持。 ?6)OpenGL ?7)XML: 定义了处理XML(eXtensible Markup Language)语言的类。

QT程序,如何在ARM板上运行

QT程序,如何在ARM板上运行写这篇文章,主要是为了说明怎么让PC机下编译好的QT程序移植到板子上运行。在说明之前,我们要了解一个事情,就是QT。QT是一个跨平台的开发工具,具有很好的移植性,它所依赖的库文件在PC机上和在ARM上是不一样的,那么我要怎么做呢? 很简单,就是重新编译已经写好的QT程序。为什么需要重新编译,第一,ARM的CPU的指令集和PC的CPU指令集肯定是不一样的,也就是需要交叉编译。第二:由于QT所依赖的库文件不一样,在不同的指令集得CPU里,库是需要移植的。我这里假设ARM板的文件系统里已经移植好了QT相关的库文件(具体怎么移植,我会再写一篇文章),移植好后,在开发板上就可以移植QT程序了。 那么,具体我要怎么编译呢?我们都知道,编译好的QT的程序,一般会有几个.CPP\.h文件,这么多的文件我们要怎么样编译。首先,我们需要安装QT版本的库,一定要注意,这个库文件一定和开发板上的是同一个库。我们假设这个库名字叫qtembed450-arm。以下步骤一定要注意: 1.安装目录一定要在“/usr/local/”下; 2.安装成功后,这步非常关键,一定要设置环境变量,而且,我们要设置三个环境变量,这样做有三个目的:①可以在任何路径下用库里的命令②编译时候可以指定编译规则为 arm-linux-g++③编译时候可以指定到所需要的库文件。那么安装后,输入一下命令:gedit /root/.bashrc.这个命令执行后就进入到设置环境变量的地方,我们要加入以下三个环境变量的设置: export PATH=$PATH:/usr/local/qtembed450-arm/bin export LD_LIBRARY_PATH=$LD_LTBRARY_PATH:/usr/local/qtembed450-arm/lib export QMAKESPEC=/usr/local/qtembed450-arm/mkspecs/default 以上设置非常的重要,非常的关键。呵呵,先照着设置,具体原因我会细谈。注意,我编译用的很重要的qmake-arm 命令,就在/usr/local/qtembed450-arm/bin下,可以打开看看哦!环境变量设置好后,用which qmake-arm 命令来确认下是否成功,呵呵。 3.准备工作做到这里,算是进行一半了,哎,真累啊!还要接着写呢。接下来我们要把我们的编译好的QT程序的文件夹打开,把里面的 .CPP/.h文件拷贝出来,新建立一个文件夹; 4.把以上的文件里的.cpp .h文件复制后新建立一个文件夹。 5.新文件夹建立后,在linux终端中进入到该文件夹所在目录下,执行这个命令:qmake-arm -project命令,千万注意,-project 和arm之间一定要有空格啊!该命令执行后,会生成一个.pro文件,紧接着呢,执行qmake-arm命令,该命令执行后呢,会生成一个Makefile文件,这步很关键哦,没有这步就不会有Makefile文件,一般在这步会出现很多错误,就是库没有发现之类,这个时候,一定要检查前面的步骤,仔细检查看是否是错误。我们这个时候打开Makefile文件看一下,会发现,里面的编译已经变成 arm-linux-g++。这个时候,就踏实,接下来怎么办?还用问吗,直接make下就好了,哈哈,简单吧!看到上面的qtmyjpg文件了吗?这个是可以在开发板上运行的哦!接下来

01.linux下搭建opencv并在qt中使用

linux下搭建opencv并在qt中使用 作者:vmezr 由于最近要着手做pcduino上的视频聊天的项目,从未接触过pcduino,经过讨论决定使用qt来实现。其实qt和opencv 我都没有接触过,也打算趁机学习一下。言归正传,首先得搭建好需要的环境,第一步是安装配置opencv,然后在qt中使用opencv的库。 (opencv的安装方法部分参考雷雨同鞋哒~) 首先,在官网https://www.wendangku.net/doc/8f4908243.html,/中下载opencv原码,选择linux版本进行下载。 以opencv2.4.8为例:(我用的是opencv2.4.13) 1.将压缩包解压到/usr/local/ 2.直接使用sudo apt-get install cmake下载并安装cmake 3.为了方便后续摄像头捕捉等功能还需要下载opencv依赖的一些包: apt-cache search opencv 使用此命令可以直接查到需要下载的依赖包 leo@leo-virtual-machine:/usr/local/opencv/release$ apt-cache search opencv libcv-dev - Translation package for libcv-dev libcv2.3 - computer vision library - libcv* translation package libcvaux-dev - Translation package for libcvaux-dev libcvaux2.3 - computer vision library - libcvaux translation package libhighgui-dev - Translation package for libhighgui-dev libhighgui2.3 - computer vision library - libhighgui translation package libopencv-calib3d-dev - development files for libopencv-calib3d libopencv-calib3d2.3 - computer vision Camera Calibration library

Linux下用QT进行软件开发的流程

Linux下用QT进行软件开发的流程 QT 2009-11-20 17:09:49 阅读69 评论0 字号:大中小 1.用QT Designer开发非GUI的C/C++软件 1)建立工程:双击上图中的C++ Project; 2)新建源程序并添加到工程中:新建hello.cpp后会自动加入到工程, hello.cpp如下: #include using namespace std; int main() { cout<<"Hello! this program is created by QT Designer !"<

Linux下QT程序开发实训个人总结

实训报告 实训名称:基于Linux下QT程序开发应用姓名: 院系: 专业班级: 学号: 指导老师:

实训总结 首先在技能方面,我们在这周实训中运用了 Linux开发环境搭建,安装了虚拟机VMware10,再用了QT平台的界面开发安装了Qt Creator,这个也仅仅是界面品台的搭建工作。 在6月12号这一天中我们完成 Linux开发环境搭建工作和和中文输入法,6月14日我们对QT平台的界面开发安装了Qt Creator 和QTCreator下C++应用开发,简单测试了RAM环境下开发和Windows环境下的开发;6月15日我们主要是开始了界面的开发工作,完成界面与开发板和传感器的互联工作。 在这次实训中,虽然我们在这学期学了Linux课程,但是这次的VMware虚拟机的版本不同,它采用的是全英文的系统,这个对我这个英语不好的人来说也算是一个硬伤,但好在我们小组敬芳芳的英语不错,简易的错误她还是能够翻译出来。当然安装过程中问题还是很多的。 其中有一些基础问题,在安装过程中没有管理D盘内的存储空间,导致在安装过程中由于磁盘空间大小不足的问题,无法进行正常安装;还有就是在15日界面程序开发中,输入程序时将单词打错,漏掉单词的问题。正是这些小问题,一直阻碍实验的进程。 还有一些技术性的问题,在14日root权限登录过程中找不到root登录界面,随后只有求助老师才知道是没有关闭自动登录;安装g++失败,询问老师才知道,需要将命令“sudo apt-get install linux-g++”修改为“sudo apt-get install g++”。15日中Qt编

Linux环境下Qt的编译

Linux环境下Qt的编译 邵发2015/6/26 一、编译Qt 4.8.3 Qt本身其实就是由一个大型的库,在Linux使用时,首先要编译Qt本身。Qt压缩包是一个很容易编译的带了源码的项目,下面介绍如何编译它。 以下是对QT4.8.3的编译,如果你的版本不一致,只要把版本号目录名改一下就行了。 1. 在Linux下,解压缩Qt4.8.3的压缩包,例如 tar zxvf qt4.8.3.tar.gz -C /opt/build/qt4.8.3/ 2. 在命令行窗口中,切换到源码目录,例如 cd /opt/build/qt4.8.3/ 和普通的Linux项目一样,执行configure / make / make install三大步骤。 (1) configure 为了加快编译速度,先修改一下 projects.pro这个文件,把不需要编译的行前加#号注释一下。(否则编译过程极为漫长,因为它把examples和demos都编译了一遍) for(PROJECT, $$list($$lower($$unique(QT_BUILD_PARTS)))) { isEqual(PROJECT, tools) { SUBDIRS += tools } else:isEqual(PROJECT, examples) { # SUBDIRS += examples } else:isEqual(PROJECT, demos) { # SUBDIRS += demos 然后,执行configure进行配置,例如 ./configure -prefix /opt/qt4.8.3 -opensource -no-qt3support -nomake examples -nomake demos -no-webkit 注:在编译选项中,为了加快编译速度,取消了example,demos和webkit模块的编译。 (2) make 输入make命令,开始编译 make

Linux下用QT开发音乐播放器

嵌入式课程设计报告 —在Linux下开发音乐播放器 李荣贵141578 一.概述 按课程要求,在Linux环境下开发了一款简易的音乐播放器软件,名为“Mini音乐播放器”,运用工具如下: 操作系统:虚拟机中安装xubuntu-14.04.1 IDE:QT Creator3.0.1 该播放器具有如下功能: 1.从本地导入歌曲到歌曲列表中 2.清空歌曲列表 3.删除歌曲列表中选中的歌曲 4.用进度条显示歌曲播放的进度,并显示时间 5.用“播放/暂停”、“停止”、“上一曲”、“下一曲”四个按钮对歌曲进行控制 6.用滑动器对歌曲音量进行控制 7.右键会弹出菜单,可以对程序进行相应的控制 二.项目展示 1.虚拟机截图

2.项目开发界面

3.软件发行后运行情况 隐藏界面部件后

三.程序设计源码分析 接下来展示源代码中的核心代码,其中包括头文件以及cpp文件中的构造函数,源代码我已经上传到网上,有需要的可以下载,链接: https://www.wendangku.net/doc/8f4908243.html,/s/1eQgwlUU。 widget.h -----------------------------------------------------------------------------------------#ifndef WIDGET_H #define WIDGET_H #include #include #include namespace Ui{ class Widget; } class Widget:public QWidget { Q_OBJECT public:

qt程序移植到arm开发板

1、安装交叉编译工具链arm-linux-gcc ●复制arm-linux-gcc-4.4.3.tar.gz到/home/tools文件夹里 ●解压命令tar xvzf arm-linux-gcc-4.4.3.tar.gz -C / (解压文件到根目 录下)注意以上命令必须要有-C而且是大写,后边有个空格也要注意。 注意查看解压的路径,将解压生成的文件移动到usr/local/arm目录下 ●vi /etc/profile ●在文件的末尾加上PATH=/usr/local/arm/4.4.3/bin:$PATH ●输入命令:source /etc/profile(使刚修改的文件立即生效) ●查看arm-linux-gcc版本arm-linux-gcc -v 注意:此方法只对当前登录用户有效,更换用户后修改当前登录用户/etc/profile即可2、tslib编译与安装 tslib是电阻式触摸屏用于校准的一个软件库,是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。因此这里先编译安装tslib,这样在后面编译Qt的时候才能打包编译进去。 ●需要检查一下软件是否安装 sudo apt-get install automake sudo apt-get install autogen sudo apt-get install autoconf ●确定以上工具都已经安装后,复制tslib-1.4.tar到/home/tools文件夹里 tar -zxvf tslib-1.4.tar.gz cd tslib ./autogen.sh ./configure --host=arm-linux ac_cv_func_malloc_0_nonnull=yes --cache-file=arm-linux.cache -prefix=/usr/local/tslib make make install

QT学习之一:Linux下安装QT之版本qt

QT学习之一:Linux下安装QT之版本qt 在Linux中分别安装应用于不同平台的QT:PC;嵌入式X86;ARM。 这三者PC版、嵌入式X86版和ARM版的区别主要体现在:当configure时分别加了不同的参数,具体区别是: PC平台:在linux中全安装qt,用它编译好程序后,直接用“./”就可运行。 嵌入式X86平台:带有qvfb功能,在PC机上可以模拟应用程序在arm开发板上的运行情况。用此编译好的程序,只用“./”命令不可以运行,必须加上参数 -qvfb -qws; ARM平台:编译好的程序,用于在arm平台上运行。 1. 系统环境 主机操作系统:ubuntu10.04 主机编译器:gcc4.4.3, 交叉编译器:arm-linux-gcc-4.3.2 2软件包:

2.1 qt源代码 qt-everywhere-opensource-src-4.6.3.tar.gz、 ftp://https://www.wendangku.net/doc/8f4908243.html,/qt/source/qt-everywhere-opensource-src-4.6.3.tar.gz 也可以在ftp://https://www.wendangku.net/doc/8f4908243.html,/qt/source/下找对应的版本 2.2触摸屏校验工具 tslib-1.4.tar.gz 下载地址: https://www.wendangku.net/doc/8f4908243.html,/f/21567219.html 3安装交叉编译器 详细见:《Arm-linux-gcc-4.3.2安装步骤》 https://www.wendangku.net/doc/8f4908243.html,/imxiangzi/article/details/7452931 4安装触摸屏校验工具 把tslib-1.4.tar.gz放到一个目录下,比如/opt目录下。接着执行命令如下: #tar zxvf tslib-1.4.tar.gz 执行命令cd tslib,进入tslib当前目录,接着执行命令如下:

嵌入式Linux下用Qt Designer开发及实例

嵌入式Linux用Qt Designer快速开发 RAD(快速应用程序开发)是一种高效的软件开发形式,可以让用户在极短的时间里创建一个图形化的用户界面。通常情况下,在一张空白的表单上,开发人员可以通过拖拉或点击的方式,在窗口的适当位置上添加一些输入框和按钮等窗口组件。这时,RAD工具会自动编写和维护代码。而用户所要做的只是确定当点击按钮或选择选单选项时将要发生什么事件。 在Linux下,一个非常流行的RAD工具就是Qt Designer。它是嵌入式公司Trolltech 的Qt软件包的一个组成部分。如果用户使用的是KDE桌面,那么Qt已经自动安装上了,Qt Designer也很有可能已经被安装好。如果用户的系统没有安装,那么针对不同的版本,可以很方便地找到KDE Development Tools,并安装之。以Red Hat 9.0为例,用户可以从主选单→系统设置→添加/删除应用程序中选择KDE 软件开发,即可完成Qt Designer的安装(如图1所示)。 图1 安装Qt Designer 创建 为了快速地向大家展示一下Qt Designer功能,先创建一个简单的摄氏温度和华氏温度的转换程序。本文里将设计一个简单的GUI,并且添加一些简单的代码来实现温度的转换。因为是为了展示一下快速的开发过程,而不是一个严谨的软件项目的开发,所以这里不会进行任何的错误检查,也不进行输入检验(也就是检查用户的输入是否为合法的温度形式)、缓冲溢出检查等在日常软件开发中一定要做的步骤。

如果用户使用的是KDE,那么选单上应该已经有Qt Designer的图标。不同的发行版,图标的位置会有所不同。如果用户的发行版没有Qt Designer图标,那么可以在命令行模式下输入“designer”命令来启动该开发工具。在Red Hat 9.0中,可以通过点击主选单→编程→更多编程工具→Qt Designer来启动(如图2)。 图2 启动Qt Designer Qt Designer首先呈现给用户的是一个New/Open对话框(如图3所示)。因为这里要创建一个C++程序,所以在此选择C++ Project,点击“OK”继续。 图3 New/Open对话框 选择一个想要保存文件的位置,并且给出一个文件名,在此使用的文件名是cfconv。注意这里文件名的扩展名一定要是.pro。点击“Save”后,返回到了Project

840Dsl使用Qt开发界面如何嵌入Linux系统

Operate PP项目如何用于840D sl (TCU+NCU) 一、概述 如果840D sl系统采用TCU+NCU的硬件配置时,此时需要在该配置上进行用户界面的二次开发,由于TCU+NCU配置采用Linux系统,因此就会遇见如何把Operate PP制作的项目嵌入到840D sl中。 二、生成Linux系统下运行的项目文件 2.1制作pro文件 Pro文件是Qt项目的描述文件,用于描述一个Operate PP项目中包含的各种文件以及资源,并且包含了对库、组件等的引用说明。该文件主要用于在Linux系统下编译文件使用,其作用类似于Windows系统下VC的项目文件vcproj。 由于pro文件不能在新建项目时自动生成,因此如果项目需要在Linux系统下编译,则要在我们安装了Operate PP目录下的样例中拷贝任意一个到我们的项目文件夹中,修改其名字与我们项目同名并添加到我们项目中。 修改pro文件,其中需要修改的地方 TEMPLATE = lib CONFIG += qt warn_on thread plugin ${BUILDMODE} PROJECT = cimt2012;修改为个人的项目名称 TARGET = $(BUILDMODE)/output/appl/cimt2012;修改为个人项目输出路径 LANGUAGE = C++

HEADERS += cimt2012info.h \ ;项目包含的头文件.h cimt2012datamanage.h \ cimt2012para1.h SOURCES += cimt2012info.cpp \ ;项目包含的源文件.cpp cimt2012datamanage.cpp \ cimt2012para1.cpp \ cimt2012plugin.cpp \ slexversion.cpp FORMS += cimt2012info.ui \ ;项目包含的界面文件.ui cimt2012datamanage.ui \ cimt2012para1.ui 2.2拷贝项目到workspace目录 把整个我们制作的项目拷贝到Linux系统的工作目录下,如W:\work\workspace\,根据个人安装Operate PP时的虚拟驱动器决定路径。 2.3 运行build Linux 在程序-〉SINUMERIK-〉SINUMERIK Operate Programming Package-〉build Linux对代码在Linux系统下进行编译。

Linux下Qt开发环境搭建

VMware + Ubuntu10.04 + qt-everywhere-opensource-src-4.8.4.tar.gz + qt-creator-linux-x86-opensource-2.5.0.bin 1.下装安装包qt-everywhere-opensource-src-4.8.4.tar.gz和 qt-creator-linux-x86-opensource-2.5.0.bin 2.安装Qt a)解压gz文件 tar –zxvf qt-everywhere-opensource-src-4.8.4.tar.gz b)如果是ubuntu,需要执行 sudo apt-get install build-essential和 sudo apt-get install libx11-dev libfreetype6-dev libavahi-gobject-dev libSM-dev libXrender-dev libfontconfig-dev libXext-dev 注:如果失败,可能是网络问题,首先确认能否上网;再进入Applications-Ubuntu Software Center,设置Edit-Software Sources的Download from改为Main server。 c)进入解压目录 ./configure d)sudo make e)sudo make install 默认安装在/usr/local/Trolltech/Qt-4.8.4 3.安装Qt Creator a)添加权限 chmod 777 qt-creator-linux-x86-opensource-2.5.0.bin b)安装 ./ qt-creator-linux-x86-opensource-2.5.0.bin 默认安装在用户目录下 c)按照提示完成安装 4.设置qmake 5.编码设置

qt程序在linux下发布

在Ubuntu上,通过运行ldd myapp可以查看应用程序依赖的动态链接库,在=>后显示”not found”的动态链接库就是需要复制的动态链接库,如下图: 将缺失的动态库复制到应用程序目录后,由于实际的动态库名称与应用程序所需的名称不一致,还需要通过建立软链接实现应用程序与动态链接库的链接,比如libQt5Core.so.5建立指向libQt5Core.so.5.1.0的软链接,在应用程序目录下执行下面的命令: ln -s $PWD/libQt5Core.so.5.1.0 libQt5Core.so.5 所有动态库的软链接建立之后,执行下面的命令使应用程序目录成为系统动态库路径: export set LD_LIBRARY_PATH=$PWD:$LD_LIBRARY_PATH 再次运行ldd myapp显示所有动态库都已经关联,运行myapp报错 Failed to load platform plugin “xcb”. Available platforms are: Aborted(core dumped) 这是缺少平台信息,需要将安装目录/opt/Qt5.1.0/5.1.0/gcc/plugins/platforms文件夹复制到应用程序所在目录下,执行应用程序仍然报错 Failed to load platform plugin “xcb”.Available platforms are: linuxfb minimal xcb Aborted (core dumped) 这时通过命令export QT_DEBUG_PLUGINS=1,再运行./myapp可以将QT的调试信息打印出来,可以看到实际上还缺少一个动态库,导致libqxcb.so不能加载:

在linux系统上安装qt-sdk步骤

在Linux 系统上使用SDK 安装Qt 软件 在Linux 上使用SDK 安Qt 是比较简单的,按照下面的安装步骤提示,一步一步下来即可完成,但是其中有些要注意的地方。下面是我自己安装的过程,操作系统:Ubuntu9.10版。 第1步:下载SDK 登录到 https://www.wendangku.net/doc/8f4908243.html,/qtsdk/ 网站在网上下载支持Linux 的Open Source 版,下载到的文件名字类似于qt-sdk-linux-x86-opensource-2009.03.bin ,大小约为280MB 左右。 第2步:设置文件权限 要想安装,用户必须要对该文件有读/写和执行的权限。方法有两种:一是图形修改权限,二是用命令修改权限。 方法1:在下载的文件上单击右键,选择弹出的右键快捷菜单(如图1)中的“属性”选项,即可进入到属性设置对话框(图2)。 接下来,在属性设置对话框中,把3个“访问”都改成“读写”,在把“执行”打上勾,关闭对话框即可。 图1 图2 方法2:才用命令的方式修改权限,命令如下: 第3步:开始安装 用cd 命令切换到你这个文件所在的目录,运行安装程序: 将来到图3这个欢迎界面,单击Next 按钮进入下一步。

图3 第4步:接受授权协议 如图4所示界面,选择接受协议,然后单击Next按钮进入下一步。 图4 第5步:选择安装路径 这一步是配置Qt的安装路径,如果没有特殊要求,建议选择默认路径。当然也可以进行修改,但是切记一点,就是不可以在路径中加入空格,否则以后很可能出现意想不到的问题。如果确实需要隔开的话,就用那用“-”好了,在图5完后单击Next按钮进入下一步。

在mini6410上建立LinuxQt开发环境

在mini6410上建立LinuxQt开发环境 实验原理: Qt 是一个跨平台的 C++ 图形用户界面库,使用Qt开发的软件,相同的代码可以在任何支持的平台上编译与运行,而不需要修改(或修改极少)源代码。会自动依平台的不同,表现平台特有的图形界面风格。 Qtopia是基于Qt开发的一个软件平台,主要用于采用嵌入式Linux系统的PDA 或移动电话,Qtopia提供了窗口操作系统、游戏和多媒体、工作辅助应用程序、同步框架、PIM应用程序、Internet应用程序、开发环境、输入法、Java集成、本地化支持、个性化选项以及无线支持等。 准备工作: For personal use only in study and research; not for commercial use 1) 安装Fedora9; 2) 安装友善之臂提供的mini6410交叉编译器; 3) 烧写最新Linux系统的Image到开发板; For personal use only in study and research; not for commercial use 实验步骤: 1、移植 1)、从FriendlyARM mini6410光盘A中获得 qtopia2.2.0 的源代码。 For personal use only in study and research; not for commercial use 2)、编译PC版本的 3)、在PC上运行 要运行qtopia2.2.0,首先需要运行Qtopia模拟器qvfb, 还需要设置QTDIR 等一些环境变量。 For personal use only in study and research; not for commercial use # cd /opt/qtopia-free-2.2.0 # vi run 在vi中输入以下内容保存: For personal use only in study and research; not for commercial use #!/bin/sh ./qt2/bin/qvfb -width 480 -height 272 -depth 16 & cd qtopia/image

Linux下移植步骤-qt

Fedora14移植步骤 一、交叉编译环境 1.安装arm交叉工具,解压arm-linux-gcc-4.4.3-20100728.tar.gz到根目录 tar –vxzf arm-linux-gcc-4.4.3-20100728.tar.gz -C / 2.配置arm交叉工具环境变量:使用root用户修改/etc/profile文件,添加 export PATH=/opt/FriendlyARM/toolschain/4.4.3/bin:$PATH source /etc/profile 二、U-boot编译与移植 1.解压u-boot源码:tar -vxf u-boot-2009.11.tar.bz2 2.编译u-boot :进入u-boot所在目录配置u-boot:make mini2440_config 编译u-boot:make 3.使用dnw将u-boot.bin烧写到nand flash里面 4.配置u-boot的ip地址,服务器地址,子网掩码,网关 5.配置u-boot的环境变量:setenv bootargs “noinitrd init=/linuxrc console=ttySAC0 root=/dev/nfs rw nfsroot=192.168.1.200:/opt/studyarm/rootfs ip=192.168.1.201:192.168.1.200:192.168.1.254:255.255.255.0”(具体参数值参考qt移植文档),注意,要启动,需要等到根文件系统做完。 setenv bootcmd “nand read 30008000 80000 500000;bootm 30008000” 三、配置nfs服务器和tftp服务器: nfs: 1.安装:yum install nfs* 2.配置:编辑/etc/exports,写入:/opt/studyarm/ 192.168.1.*(rw,sync,no_root_squash) 3.重启nfs服务:service nfs restart tftp: 1.关闭SELinux:打开“系统”->管理->SELinux,应用模式:disable 2.安装xinetd-2. 3.14-32.fc1 4.i686.rpm,tftp-server-0.49-6.fc14.i686.rpm(注 意,必须先安装xinetd,再安装tftp-server,双击即可安装); 3.配置tftp:修改/etc/xinetd.d/tftp文件,

相关文档
相关文档 最新文档