当前位置:文档之家› 实验11 QT程序设计及烧写

实验11 QT程序设计及烧写

实验5 QT程序设计及烧写
●实验目的:
1、掌握QT简单程序的设计方法及步骤。

2、掌握QT资源文件的添加
3、掌握QT多界面的跳转。

4、掌握QT程序的移植方法。

●实验要求:
理解QT编程的一般方法和程序移植的思路。

●实验器材:
软件:
1. 安装了Ubunt的vmware虚拟机
2. GEC210 开发板
硬件:PC机一台
●实验题目及操作步骤:
1、不使用集成开发工具,用纯代码编写第一个QT程序hello,
实现运行效果如下图,
注意:在Linux环境的编译步骤,可以使用qmake –v命令查看QT版本。

qmake –project
qmake
make
./hello
2、学习信号和槽的机制,实现单机按钮退出界面。

效果如下图所示:
参考代码如下:
#include <QApplication>
#include<QPushButton>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QPushButton *button = new QPushButton("Quit"); QObject::connect(button,SIGNAL(clicked()),&a,SLOT(q uit()));
button->show();
return a.exec();
}
3、用集成开发环境实现上题功能。

4、如下图界面上有一个label,两pushbutton。

当点击一个pushbutton时,Label显示字符1 点击另一个pushbutton时,label显示字符2
4、添加资源练习,实验效果如下图所示。

设计过程如下所示。

然后添加前缀和文件,注意:这一步之后一定要保
存!!!!!!!!!!
选择修改背景色。

5、实现界面跳转和返回练习。

单击“进入”按钮进入第二个界面,并隐藏第一个界面。

单击“返回”按钮返回到第一个界面。

实现方法:首先如下图操作,在工程中添加第二个界面。

在dialog.h中添加一个Dialog2 类的指针。

6、实现开发板LED 控制的QT程序。

核心参考代码如下:#include "leds.h"
#include "ui_leds.h"
#include <unistd.h>
#include <stdio.h>
#include <sys/ioctl.h>
#include <fcntl.h>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_pushButton_Led1On_clicked() {
int fd = ::open("/dev/leds", 0);
::ioctl(fd, 1, 0);
::close(fd);
}
void Widget::on_pushButton_led1Off_clicked()
{
int fd = ::open("/dev/leds", 0);
::ioctl(fd, 0, 0);
::close(fd);
}
void Widget::on_pushButton_Close_clicked()
{
close();
}
移植QT程序到GEC210开发板。

1、首先安装交叉编译工具链,
arm-none-linux-gnueabi-arm-2010-09-50-for-linux
.tar.bz2
将其解压到 /usr/loacal/arm目录下
tar -xzvf
2、将QT程序交叉编译之后产生开发板运行的可执行文件,
例如:test。

将其拷贝到/opt目录下
3、挂载Ubunt 的/opt目录到开发板的/mnt目录。

4、在开发板的/mnt目录下执行./test –qws命令。

具体QT交叉开发环境和开发板的挂载方法如下所示。

一、参考《GEC210嵌入式系统开发教材20131120(更
新).pdf》的P43页,2.9 NFS 挂载实验,将开发版和PC机的/opt
目录挂载到开发版的/mnt目录下
具体步骤:
首先确保linux 系统内已安装nfs-kernel-server ,nfs-common ,可用nfsstat 查看,
如果没有安装,则在linux 联网的情况下,执行如下两条命令(以Ubuntu 为例)
#sudo apt-get install nfs-common
#sudo apt-get install nfs-kernel-server //安装nfs 服务器
配置NFS服务
=======================
2,配置NFS,使得某一个你指定的目录,成为NFS网络分区,以供其他主机挂载
sudo vi /etc/exports
添加如下信息:
/opt *(rw,sync,no_subtree_check)
其中:
/opt 就是你要对外给别人挂载的目录,可以修改为其他目录
* 代表所有IP,即任何人都可以挂载这个目录
(rw,sync,no_subtree_check) 这一堆是挂载分区的属性,照抄即可。

3,重新加载该配置文件:
sudo /etc/init.d/nfs-kernel-server reload
4,重新启动NFS服务:
sudo /etc/init.d/nfs-kernel-server restart
5,查看已经提供NFS挂载的目录:
showmount -e
开发板配置
[root@GEC210 /]# vi /etc/profile
找到
#source upiot.sh注释
在下一行写ip设置
ifconfig eth0 192.168.1.x(自己PC机的IP地址+160) 保存退出
开发板挂载
1.检查网线
2.看是否ping 通
3.看服务器是否配置好
配置pc端(linux虚拟机)
sudo vim /etc/network/interfases如下注释
auto lo
iface lo inet loopback
auto eth0
#iface eth0 inet static
#a ddress 192.168.1.5(自己PC的IP+80)
#gateway 192.168.1.1
#netmask 255.255.255.0
重启网络管理器
sudo service network-manager restart
重启网络服务:
sudo /etc/init.d/networking force-reload ==> 重新加载配置文件
sudo /etc/init.d/networking restart 在开发板端
1.配置IP
ifconfig eth0 192.168.1.8
2.配置网关
route add default gw 192.168.1.1
3.挂载
mount -o nolock 192.168.1.9:/opt /mnt。

相关主题