哪位大神可以帮我解决QT问题,我都快疯了啊,QIODevice::write: device not open

lincuiting06 2014-11-10 06:36:04
最近在做GSM短信模块,代码是老大给的,开发环境是Ubuntu下QT.而且GSM设备在windows下测试可以给指定手机发短信。在Ubuntu下面运行程序时一直出现QIODevice::write: device not open,不知道是什么原因啊?而且串口的打开读写也有问题,加了一些qq群却没人能帮我解决,哎,小妹刚接触QT,很多东西还不熟悉,已经上班半个月了,还是没有实现短信功能,心里真的好急啊!但是又很无奈,难道就没有一个人可以帮我解决这个问题吗?
...全文
17409 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
如坐云端 2018-05-10
  • 打赏
  • 举报
回复
用 sudo xxxx试试,应该可以的。
qq_26267759 2017-08-05
  • 打赏
  • 举报
回复

有谁知道这是什么问题,,当我按下save in file按钮是为啥会出现QIODevice::write (QFile, "D:\QT_OBJ\My_project\GPRMC\jzx.txt"): device not open 这种情况呢,,本人是在windows环境下
qq_26267759 2017-08-05
  • 打赏
  • 举报
回复
已经为777了,注意楼主的图片
iwenzhiming 2017-07-12
  • 打赏
  • 举报
回复
一般是文件权限问题
guwhao 2017-06-12
  • 打赏
  • 举报
回复
大姐姐。。在17年的时候看到你的问题,我猜你肯定是因为没有把文件改为777权限。。
wk0564 2017-01-23
  • 打赏
  • 举报
回复
为什么程序中 open函数返回为假时 做写操作,返回为真时打印error
zrcwuhan 2015-09-04
  • 打赏
  • 举报
回复
同样的问题啊,不知道怎么解决!
cheersfan 2015-08-24
  • 打赏
  • 举报
回复
引用 13 楼 ecourse 的回复:
看了上面的回复,我基本可以确定你遇到的问题和我以前一样。你一定调用了不同的serialport对象的实例,比如,你的某个类中声明了一个serialport,而主程序中也有一个声明,那么主程序调用其它类中声明serialport的类时,就会出现你的问题
我也是QIODevice::write: device not open这个问题,不过程序很简单,是一个最基础的串口通信代码,在点击“发送”按钮后,就会跳出来这个问题,求教~
电子技术课程 2015-02-09
  • 打赏
  • 举报
回复
看了上面的回复,我基本可以确定你遇到的问题和我以前一样。你一定调用了不同的serialport对象的实例,比如,你的某个类中声明了一个serialport,而主程序中也有一个声明,那么主程序调用其它类中声明serialport的类时,就会出现你的问题
oldmtn 2014-12-31
  • 打赏
  • 举报
回复
估计是端口被占用了。
火头军 2014-11-20
  • 打赏
  • 举报
回复
引用 10 楼 lincuiting06 的回复:
QIODevice::write: device not open这个问题解决不了,但是把串口调通了,现在开始调试发短信了。还是希望有高手能帮我把QIODevice::write: device not open这个解决掉啊!
你怎么把串口调通的啊?
lincuiting06 2014-11-11
  • 打赏
  • 举报
回复
有的,权限也是对的啊
luciferisnotsatan 2014-11-11
  • 打赏
  • 举报
回复
看输出的日志,说“No such file or directory” open /dev/ttyUSB0 失败了。 系统里有这个 /dev/ttyUSB0 文件么?
lincuiting06 2014-11-11
  • 打赏
  • 举报
回复
每天毫无进展,被这个问题折磨了一周多,我都不知道到底该肿么办?
lincuiting06 2014-11-11
  • 打赏
  • 举报
回复
调用了啊,请看截图
lincuiting06 2014-11-11
  • 打赏
  • 举报
回复
QIODevice::write: device not open这个问题解决不了,但是把串口调通了,现在开始调试发短信了。还是希望有高手能帮我把QIODevice::write: device not open这个解决掉啊!
lincuiting06 2014-11-11
  • 打赏
  • 举报
回复
没人能帮我了
xucong198949 2014-11-11
  • 打赏
  • 举报
回复
报出这个提示一般都是没调用QIOdevice::open函数。 从QIODevice派生出来的类,读写前都必须要先调用open函数,可参阅QT文档 你调用m_gsmThread.writeUart之前是否打开了QIODevice?
lincuiting06 2014-11-10
  • 打赏
  • 举报
回复
端口打开了啊 注意看终端信息倒数第二行 open gsm port success
火头军 2014-11-10
  • 打赏
  • 举报
回复
QIODevice::write: device not open,应该是你的端口没打开,换个端口试试
加载更多回复(1)

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧