我正在开发需要打开USB串行端口的Linux桌面应用程序,通常是/ dev/ttyUSB0或/ dev/ttyUSB1。我使用QFileDialog,让用户选择文件:QFileDialog没有在Linux的/ dev /目录中列出tty *文件
QFileDialog dialog(this);
dialog.setFileMode(QFileDialog::AnyFile);
dialog.setFilter(QDir::System | QDir::AllEntries | QDir::Hidden);
dialog.setViewMode(QFileDialog::Detail);
QStringList fileNames;
if (dialog.exec())
fileNames = dialog.selectedFiles();
当我直接的FileDialog到/ dev,没有,我可以通过键入看到文件的“LS的/ dev -al”在那里。该目录显示出来,但是,例如,这个文件不:
$ ls -al /dev/ttyS0
crw-rw---- 1 root dialout 4, 64 2011-10-09 10:47 /dev/ttyS0
我的用户是拨出组的成员:
$ groups
luke adm dialout cdrom audio video plugdev users fuse netdev bluetooth lpadmin admin sambashare
我尝试添加一个QDir ::可读和一个QDir ::可写,上面的文件仍然不显示。我究竟做错了什么?
如果您阅读我的文章,您会看到我已经有QDir:System作为setFilter()的参数。是否有另一个地方应该使用? – hazelnusse
不知道这是否会有所帮助,但是从一些Google搜索中,似乎推荐使用库[qextserialport](http://code.google.com/p/qextserialport/)处理Qt应用程序中的串行端口。 –
@ n.m。 QDir :: DefaultFilter是未定义的。 – hazelnusse