当前位置:编程学习 > wap >>

新手 弄毕业设计 问题相当难搞定!!

小弟毕业设计 要用qt做一个led控制的图形界面  出现了比较大问题 希望高手帮忙解决下呢 初学者 基础很差[img=http://b98.photo.store.qq.com/psb?/39a33996-1979-42bd-80cf-][/img]


下面是代码
edtest.h 
            

#ifndef LEDTEST_H

#define LEDTEST_H

#include <QMainWindow>


namespace Ui {

    class ledtest;

}


class ledtest : public QMainWindow {

    Q_OBJECT

public:

    ledtest(QWidget *parent = 0);

    ~ledtest();

public slots:

    void LED1_Toggle();

    void LED2_Toggle();

void LED3_Toggle();

    void LED4_Toggle();

protected:

    void changeEvent(QEvent *e);


private:

    Ui::ledtest *ui;

};

#endif // LEDTEST_H



ledtest.c                                                                                                                                                             #include "ledtest.h"
#include "ui_ledtest.h"

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include<string.h>
#include <sys/ioctl.h>
#include<stdio.h>

#include<QDirectPainter>

static int fb;
static int LED1=0, LED2=0,LED3=0,LED4=0;


ledtest::ledtest(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::ledtest)
{
    ui->setupUi(this);
    int screenWidth=QDirectPainter::screenWidth();
    int screenHeight=QDirectPainter::screenHeight();
    this->resize(screenWidth,screenHeight);
    connect(ui->checkBox_LED1,SIGNAL(toggled(bool)),this,SLOT(LED1_Toggle()));
    connect(ui->checkBox_LED2,SIGNAL(toggled(bool)),this,SLOT(LED2_Toggle()));
    connect(ui->checkBox_LED3,SIGNAL(toggled(bool)),this,SLOT(LED3_Toggle()));
    connect(ui->checkBox_LED4,SIGNAL(toggled(bool)),this,SLOT(LED4_Toggle()));

    system("/etc/rc.d/init.d/leds stop");
    fb=open("/dev/EmbedSky-leds",O_RDWR);
    if(fb<0)
    {
       perror("open device leds fail");
       exit(1);
    }
    for (int i = 0 ; i < 4; i ++)
    {
          ioctl(fb, 0, i);
    }


}

ledtest::~ledtest()
{
    delete ui;
}

void ledtest::changeEvent(QEvent *e)
{
    QMainWindow::changeEvent(e);
    switch (e->type()) {
    case QEvent:: LanguageChange:
        ui->retranslateUi(this);
        break;
    default:
        break;
    }
}

void ledtest:: LED1_Toggle()
{
  LED1=~LED1;
    if(LED1==1)
  {
     ioctl(fb,1,0);
  }
  else
  {
     ioctl(fb,0,0);
  }
}
void ledtest:: LED2_Toggle()
{
  LED2=~LED2;
  if(LED2==1)
  {
     ioctl(fb,1,1);
  }
  else
  {
     ioctl(fb,0,1);
  }
}
void ledtest:: LED3_Toggle()
{
  LED3=~LED3;
  if(LED3==1)
  {
     ioctl(fb,1,2);
  }
  else
  {
     ioctl(fb,0,2);
  }
}
void ledtest:: LED4_Toggle()
{
  LED4=~LED4;
   if(LED4==1)
  {
     ioctl(fb,1,3);
  }
  else
  {
     ioctl(fb,0,3);
  }
}



--------------------编程问答-------------------- 请问出了什么问题,问问题要把问题描述清楚。
图片需要上传至csdn个人空间相册,在付链接 --------------------编程问答-------------------- 都是如此,不知道什么问题,不过楼主比较好,还有代码。
有的什么都没有,就问是什么问题,晕! --------------------编程问答-------------------- 恩 小弟第一次发呢 有些规矩还不懂 抱歉啦 ~~
--------------------编程问答-------------------- 刚注册的号呢 一周内不能上传照片哎~~ --------------------编程问答-------------------- 有个简便方法,http://www.qt-apps.org
上有一个led的例子。 --------------------编程问答-------------------- 高人呀 小弟的英文水平经不起考验的~~ --------------------编程问答-------------------- http://hiphotos.baidu.com/qichengdong123/abpic/item/1ddc58c88d1001e93357b1b4b80e7bec55e797c7.jpg  这是图片的地址 --------------------编程问答-------------------- 别沉呀  求高手~~~ --------------------编程问答--------------------
引用 7 楼  的回复:
http://hiphotos.baidu.com/qichengdong123/abpic/item/1ddc58c88d1001e93357b1b4b80e7bec55e797c7.jpg  这是图片的地址



太小了啊!!看不清字的  --------------------编程问答-------------------- http://user.qzone.qq.com/1258885060/infocenter#!app=4   不好意思呢 现在应该没问题啦 大姐一定帮我解决呀 --------------------编程问答-------------------- http://hi.baidu.com/qichengdong123/album/item/913e9d299b504fc20d3749bee5dde71191ef6dc7.html#  这是图片  --------------------编程问答-------------------- QDirectPainter 只能在 Qt for Embedded Linux使用
你是编译嵌入式Linux 的qt应用程序吗? 或者告诉我你用什么编译器 --------------------编程问答-------------------- 嗯~·是linux下qt应用程序 用qt creator 写程序编译的  代码我是手册上复制的 --------------------编程问答-------------------- --------------------编程问答-------------------- 你看是不是缺少
 #include <QDirectPainter>
头文件啊? --------------------编程问答-------------------- 我的毕业设计也是QT编程,但我还一点都不会呢!要好几个界面呢,第一个温度显示界面我就不会! --------------------编程问答--------------------
引用 16 楼  的回复:
我的毕业设计也是QT编程,但我还一点都不会呢!要好几个界面呢,第一个温度显示界面我就不会!

你直接用ui,然后代码调用ui上的部件就行了啊! --------------------编程问答-------------------- #include <QDirectPainter>
 头文件有的  怎么直接用ui 希望详细点 --------------------编程问答--------------------
引用 18 楼  的回复:
#include <QDirectPainter>
 头文件有的  怎么直接用ui 希望详细点

你打开Qt Creator,创建一个Qt Gui Application,里面带ui,然后你就可以在里面随便布局,按你自己的想法了。布局好后,可以在代码里直接调用你添加的窗体部件,例如:
如果你的窗体里有个部件名字叫pushButton_2, 你可以用ui->pushButton_2这样调用,这样就不用你自己在代码里面定义了。 --------------------编程问答--------------------
引用 13 楼  的回复:
嗯~·是linux下qt应用程序 用qt creator 写程序编译的  代码我是手册上复制的


哎,Linux qt应用 不等于 Qt for Embedded Linux 应用。

你先编译出跑给ARM板子的程序来控制LED是不是? 那么可以用QDirectPainter这个类,可以在本地编译,但是不能运行。你用Qt-creator点大三角是用g++编译+运行,你需要用arm-linux-g++来编译。
你要是编写在本地运行的程序,通过串口来控制LED,那么你不能使用QDirectPainter这个类。

--------------------编程问答-------------------- 嗯 我现在是先把程序编译通过 生产可执行文件 再一起和qt一起烧到板里 ~~我接下来该怎么修改这程序呢~~
补充:移动开发 ,  Qt
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,