170321 Qt远程控制界面、文件图像,汇编第四章实验

1625-5 王子昂 总结《2017年3月21日》 【连续第171天总结】

A. PyQt  远程控制、文件图像、调节图像大小

汇编语言第四章实验

B. 建立了服务器和客户端的连接,使得服务器向客户端发送一个消息后可以改变客户端GUI的图像设置

在py3中,send的参数变为了bytes类型(字节数组)而不能使用str(字符串)类型

改变方法: str→bytes bytes('str','encoding=utf8')

bytes→str str('bytes','encoding=utf8')

注意:send发出了bytes类型的消息以后,recv接收到的也是bytes类型的消息,在验证值时需要注意格式

通过Qimage和QPixmap类型可以设置Label的图像显示

中间出现了一些问题,本来我以为是只有存放在ui和py同一文件夹下的资源文件才能导入,但是查看了一下文件夹发现并没有事先导入的jpg文件,查看了同一文件夹下的xml文档也没有看到有指明地址的,那么说明它确实是可以使用绝对地址的

但是换了几个jpg文件就是死活不能显示。换到别的盘查看QT源程序文件下时,偶然发现另外一个文件也是可以导入的。那么说明确实是可以使用绝对地址的,问题出在那几个不能正常显示的jpg文件上。查看了一下大小,能显示的文件都很小,只有几十K。而那几个不能显示的jpg文件都高达几百K甚至1MB。猜想是不是缓冲区接收的内容有限之类的

百度搜索相关问题,没有任何有关的内容。于是自己思考:既然在PyQt中无法显示,那在QT中绑定资源怎么样呢?

回到QT,添加文件选择那几个不能显示的jpg文件,果然---报错:像素映射读取错误。xxx.jpg不是有效的像素映射文件。

按照关键词百度,仍然没有有关QT的内容。无奈,继续自己想办法:会不会是头文件有什么不同呢?

以txt格式分别打开所有jpg文件,发现:虽然都是乱码,但开头字节处分别有能识别的英文。能打开的头部都写着JFIF,不能打开的头部都写着IHDR。按照这个再去进行百度,终于明白原因:JFIF是JPEG的衍生格式,使用jpg可以通用;但IHDR是PNG格式的数据头,以jpg格式打开必然会出错。遂把那几个文件后缀名改成png,终于能在QT中正常打开。估计是之前发我这个文件的人没在意存储格式,而图像查看软件的解码能力又太强大可以直接打开jpg格式的png文件。

目前存在的问题:虽然打开的图片能够自动调节尺寸适应label控件的大小,但是label控件似乎尺寸不对,在界面上明显过小。可能跟grid布局有关,在QT中显示的明明是很大的控件╮(╯_╰)╭

后端需要确定一下界面,选择图片文件,图片文件的传输。传输协议和图片随机反而比较简单。


汇编 按照实验说明完成了从编写代码、编译、连接,从debug中监控运行的全过程。挺有意思的。

PSP的内容保存在程序运行内存的前256个字节,而地址的段地址保存在DS寄存器中,偏移地址为0

C. 明日计划

QT Label控件的大小设置、后端界面的初步规划

汇编语言第四章

你可能感兴趣的:(170321 Qt远程控制界面、文件图像,汇编第四章实验)