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

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

小弟毕业设计 要用qt做一个led控制的图形界面 出现了比较大问题 希望高手帮忙解决下呢 初学者 基础很差
下面是代码
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);
  }
}
--------------------编程问答-------------------- 木有图片! --------------------编程问答-------------------- /upload/20131225/1ddc58c88d1001e93357b1b4b80e7bec55e797c7.gif  这是图片地址 不好意思啦 刚申请 的号 一周内不能上传图片呢 --------------------编程问答--------------------
补充:移动开发 ,  Qt
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,