• 10755阅读
  • 4回复

请教QSocketNotifier的问题。。 [复制链接]

上一主题 下一主题
离线darrenmu
 

只看楼主 倒序阅读 楼主  发表于: 2010-07-02
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
我用QFile打开一个文件,然后用QSocketNotifier监听它的描述符是否可读,如果activatied则进入槽函数打印一句话。

但实际运行时,终端不停的重复打印(不停的进入槽函数),我很奇怪,没有往文件写任何东西啊?如果我去读文件,什么都读不到。。。



代码如下:
Server::Server(QString fileName, QObject *parent)
    :QObject(parent)
{
    file = new QFile(fileName, this);
    if(file->open(QIODevice::ReadWrite)){
        if(file->handle() >= 0){
            notifier = new QSocketNotifier(file->handle(), QSocketNotifier::Write, this);
            connect(notifier, SIGNAL(activated(int)), this, SLOT(onActivated(int)));
        }
    }else
        qDebug() << "open file failed!";
}

void
Server::onActivated(int)
{
    char buf[32];
    int n = file->read(buf, 31);
    qDebug() << "n = " << n;
}

如上所述,总是不停的进onActivated,读的n总是0。。。。
盼望解答疑惑,谢谢!
离线darrenmu

只看该作者 1楼 发表于: 2010-07-02
恳请用过QSocketNotifier的朋友回答
离线darrenmu

只看该作者 2楼 发表于: 2010-07-04
继续求解。。用过QSocketNotifier的随便说两句
离线lzpmail
只看该作者 3楼 发表于: 2011-03-13
我用QSocketNotifier监测串口设备文件时,老是丢数据,请高手出来指点指点啊
离线lch922

只看该作者 4楼 发表于: 2012-09-13
notifier = new QSocketNotifier(file->handle(), QSocketNotifier::Read, this);
给我一片天空,还你一道彩虹。
快速回复
限100 字节
 
上一个 下一个