• 6440阅读
  • 3回复

[提问]QLabel显示网络上的共享图片 [复制链接]

上一主题 下一主题
离线mgrmhc
 

只看楼主 倒序阅读 楼主  发表于: 2012-02-29
— 本帖被 yfx2003 从 《C++ GUI Qt 4编程》(第2版)专栏 移动到本区(2012-05-07) —
在使用Qt的过程中,发现几个由于系统平台不同造成同样的代码运行结果不同,其中有一个就是用QLabel显示网络上的共享图片,不知大家是否也有同感,因此放在这里同大家讨论一下。
Windows下,如下代码运行正常:
        QPixmap pixmap;
        sPath="//192.168.0.13/share/1.jpg";
        b=pixmap.load(sPath);
        ui->label_image->setPixmap(pixmap);
此时b为真,图片显示正常。
但是在虚拟机中的Ubuntu下,b为假,图片无法显示。
这里"//192.168.0.13/share/1.jpg"是远程共享文件,通过文件夹能访问,因而排除了网络原因。
暂时没有好的解决方法,还请高人指点。


离线XChinux

只看该作者 1楼 发表于: 2012-02-29
用QFile读进来,再显示。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线mgrmhc

只看该作者 2楼 发表于: 2012-02-29
谢谢热心的XChinux大侠 ,我先用这个方法试试。。。
离线mgrmhc

只看该作者 3楼 发表于: 2012-03-01
引用第1楼XChinux于2012-02-29 12:49发表的  :
用QFile读进来,再显示。



QFile试过了,拷贝不过来
最后是用samba解决的。
谢谢热心的XChinux

顺便再讨论一个问题:
对于同样一个命令smbclient  //192.168.0.10/share -N
在Ubuntu终端上执行正常,用QProcess怎么就不行呢?代码如下:
    QProcess cmd;
    cmd.setStandardOutputFile("/home/share/1.txt");
    QStringList slPara;
    slPara<< “//192.168.0.10/share ”<< “ -N”;
    cmd.start("smbclient", slPara);
在/home/share/1.txt中得到如下输出:
session setup failed: NT_STATUS_LOGON_FAILURE
意思是用户有误, 可能是用户不存在, 也有可能是密码错误,而此时samba服务器是可用匿名用户登录的(smbclient //192.168.0.10/share -N
)。

请大家讨论。。。
快速回复
限100 字节
 
上一个 下一个