• 4666阅读
  • 5回复

大家帮忙看看::写个QObject子类,重新实现bool event()方法,按键时却没有执行event() [复制链接]

上一主题 下一主题
离线meteor1516
 

只看楼主 正序阅读 楼主  发表于: 2008-09-17
大家帮忙看看::写个QObject子类,重新实现bool event()方法,按键时却没有执行event()
— 本帖被 XChinux 执行加亮操作(2008-09-20) —
最近在写一个控制台程序,需要检测键盘的按键,于是自己从QObject类继承写了个类,重写了bool event(QEvent *e)方法。但是按键时却没有执行。大家帮我看看是我哪里弄错了。

main.cpp:
-------------------------------------
#include <QtCore>
#include <QCoreApplication>
#include "console.h"
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    Console console;
    return a.exec();
}
--------------------------------------

console.h
--------------------------------------
#ifndef CONSOLE_H_
#define CONSOLE_H_

#include <QObject>
class Console : public QObject
{
    Q_OBJECT
public:
    Console(QObject *p=0);
    bool event(QEvent *e);
};

#endif /*CONSOLE_H_*/
--------------------------------------


console.cpp
--------------------------------------
#include "console.h"
Console::Console(QObject *p)
: QObject(p)
{
   
}
bool Console::event(QEvent *e)
{   
    printf("event.\n")    ;
    return TRUE;
}
--------------------------------------
离线mumutouv

只看该作者 5楼 发表于: 2008-09-22
那不可能,不使用X11的话,你只能去通过读取/dev/设备文件了,例如/dev/tty
离线water_wf

只看该作者 4楼 发表于: 2008-09-18
installEventFilter
离线meteor1516

只看该作者 3楼 发表于: 2008-09-18
谢谢楼上两位的帮忙。
不能用QWidget,因为使用QWidget的话就要使用X WINDOW服务,但是我这个程序运行的时候要求不使用X WINDOW服务,所以不能用QWidget及其子类
另外试了下QApplication,结果还是不执行bool event();
高手们再帮帮啊。
离线mumutouv

只看该作者 2楼 发表于: 2008-09-18
QApplication
离线duduqq

只看该作者 1楼 发表于: 2008-09-17
把QObject改为QWidget试试看
快速回复
限100 字节
 
上一个 下一个