我正在開發需要打開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