如图,图中用到的组件:Radio Button和一个垂直布局
button.h
#ifndef YOURBUTTONFORM_H
#define YOURBUTTONFORM_H
#include "your_button_base_form.h"
#include<qtimer.h>
class YourButtonForm : public YourButtonBaseForm
{
Q_OBJECT
public:
YourButtonForm( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
virtual ~YourButtonForm();
QTimer *timer;
private slots:
void show_button(void);
};
#endif // YOURBUTTONFORM_H
button.cpp
#include "yourbutton.h"
#include <qradiobutton.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/select.h>
#include <sys/time.h>
YourButtonForm::YourButtonForm( QWidget* parent, const char* name, WFlags fl):YourButtonBaseForm(parent, name, fl)
{
timer = new QTimer(this);
connect (timer, SIGNAL(timeout()), this, SLOT(show_button()));
timer -> start(10);
}
YourButtonForm::~YourButtonForm()
{
}
void YourButtonForm::show_button()
{
int fd, i;
char current_buttons[6];
fd = ::open("/dev/buttons", 0);
::read(fd, current_buttons, 6);
key1RadioButton -> setChecked (current_buttons[0] & 1) ;//使相用的Radio Button 被选中
key2RadioButton -> setChecked (current_buttons[1] & 1) ;
key3RadioButton -> setChecked (current_buttons[2] & 1) ;
key4RadioButton -> setChecked (current_buttons[3] & 1) ;
key5RadioButton -> setChecked (current_buttons[4] & 1) ;
key6RadioButton -> setChecked (current_buttons[5] & 1) ;
::close(fd);
}