170322 PyQt-后台界面设置、WidgetList的使用 汇编5.1_奈沙夜影的博客-程序员宝宝

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

A. PyQt Label控件大小设置、弹出文件选择

汇编语言 5.1

B.看了一下Qt中的控件size,都是0x0,估计这就是使用scaled设置大小不充满的原因了

在Qt界面中右击控件即可设置它们的最小size

尝试了一下动态修改GUI界面的信息,发现与Tk类似,使用sys.exit(app.exec_)进入主循环以后就不能使用过程代码修改内容了

只能通过信道槽(事件响应)的回调函数来修改

百度查到了getOpenFileName的用法,是微软提供的设定好的库函数弹出选择文件的对话框。

自己复制过来的时候总是闪退,怎么试都是闪退,气哭

最后没办法,找一个同是PyQt5的示例程序原版复制到一个新文件,运行---成了!

说明是衔接有问题,一一对比,发现是一个参数本来为self,在我的程序中因为界面和Widget是两个类,所以出问题了,遂把Widget的对象放入方法的参数里,终于也成功了。

另外getOpenFileName和其他保存之类的对文件操作的对话框,里面的过滤器格式形如:"All File(*);;Picture File(*.jpg *.gif)" 即:不同过滤器使用;;分隔,同一过滤器的不同格式使用空格' '分隔。也是通过关键字多次查找了很久才拼凑出来的知识。


整理了界面与逻辑分离的思路--新建一个QtWidgets.QWidget/QMainWindow类,作为逻辑存放地;在这个类中生成一个界面类的对象,然后对其的域修改即可

也可以直接让新类继承界面类,使用self.同样可以修改其域

使用新类的原因是只有这两个类才有show函数,来显示界面


查了半天如何用TextEdit控件实现换行啊选中背景高亮啊等等功能都完全没有,有点奇怪……

后来发现有ListWidget控件可以轻松实现OTZ搜索之前要先查看一下现有手头资源啊

openFileName可以直接得到文件路径,然后按照路径将它导入Image对象中,在Label控件里就可以生成预览图像了


因为本身Qt自带的信号就有ItemClicked,所以直接就拿来用了,但是因为要显示Item的名字,所以查了半天这个参数如何用信号机制发送。 PyQt5本身资源就比较少,教程里又基本上全都是自定义信号的。解决起来很困难,StackOverflow里倒是有很多问题,然而阅读起来实在费力。英文的重要性啊OTZ

最终终于在边边角角的材料中一点一点拼凑起来:自带的信号会发送参数,只需要在槽中接受参数即可,还好Py可以在'.'后显示方法和域,找到了text()方法得到文本内容,这样才能方便地预览了。

意外收获:Event机制和sender---PyQt中也有Event参数,诸如KeyPress之类的事件使用Event.key()方法可以得到按下的按键

sender则可以得到信号发出者的对象,然后就能使用它的方法和域了


另外在查找文档的时候还发现有人提到在命令交互界面使用help可以获得官方的帮助文档,里面提供了方法和域的说明

下一步是Item的序号,以便进行随机抽取

不过其实抽象一个列表来替代也可以;那么更重要的就是右键菜单,或者是删除功能了(以及删除所传出的信号来修改抽象列表)


汇编:

[0]表示段地址为ds,偏移地址为0的内存单元存放的内容

[bx]表示段地址为ds,偏移地址为bx寄存器的内容的内存单元存放的内容

(X)表示X中存放的内容,X可以是寄存器,可以是段寄存器,也可以是内存单元的物理地址(20位数据,而不是段地址:偏移地址)

idata表示常量

loop 标号

CPU执行loop指令的时候进行两步操作:①(CX)=(CX)-1  ②判断(CX)是否为0,不为0则转至标号处执行程序

通常使用loop实现循环功能,cx存放循环次数

eg: assume cs:code

code segment

mov ax,2

mov cx,11

s: add ax,ax

loop s 

mov ax,4c00h

int 21h

code ends

end

C. 明日计划

Qt WidgetList的序号和删除功能

汇编语言第五章

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/whklhhhh/article/details/64907410

智能推荐

subversion_丶落幕的博客-程序员宝宝

svn使用步骤1.安装2.创建并配置版本库3.启动服务4.命令行客户端5.检出操作6.提交操作7.冲突8.减少冲突的发生总结使用步骤1.安装代码如下(示例):#yum安装yum install -y subversion#查看SVN版本svn --version2.创建并配置版本库代码如下(示例):#创建版本库目录mkdir -p /var/svn/repository#进入目录cd /var/svn/repository/#创建具体项目目录mkdir pro_oa &amp

ftp同步工具,6款最值得推荐的ftp同步工具_普通网友的博客-程序员宝宝_ftp同步工具

第一款:iis7服务器管理软件iis7远程桌面管理软件,是一款绿色小巧,功能实用的FTP工具软件,其界面简洁,操作方便,它支持FTP批量上传下载,它可以同时连接多台ftp服务器进行文件传输工作,还可以在线解压缩文件,支持文件查找,在线编辑等功能。同时它还能够同时远程操作多台服务器,并且多台服务器间可以自由切换,适合机房管理、站长、运维工作、程序员使用。适用于Windows系统,Linux系统和VPS服务器等。在众多好用实用的功能当中,最大的亮点还是属定时上传下载的强大功能了,它可以定时备份,自动更新等,

《iOS移动开发从入门到精通》图书连载7:iOS模拟器的使用_李发展的博客-程序员宝宝_ios从入门到精通

酷课堂(ID:coolketang)独家文章,其他媒体转载请注明出处本期导读当您在使用Xcode软件开发iOS平台的应用程序时,可以使用Apple提供的iOS模拟器进行应用程序的测试。Apple提供了各个版本的iPhone和iPad模拟器供您测试应用程序,这样您无需花费大量的金钱去购买测试设备。iOS模拟器的使用尽管iOS模拟器无法模拟所有的真机功能,但是它可以提供真实设备绝大部分的功能,所以iO

? extends T 与 ? super T_lingli219的博客-程序员宝宝

首先,泛型的出现时为了安全,所有与泛型相关的异常都应该在编译期间发现,因此为了泛型的绝对安全,java在设计时做了相关的限制:List表示该list集合中存放的都是E的子类型(包括E自身),由于E的子类型可能有很多,但是我们存放元素时实际上只能存放其中的一种子类型(这是为了泛型安全,因为其会在编译期间生成桥接方法该方法中会出现强制转换,若出现多种子类型,则会强制转换失败),例子如下:

EditPlus格式化JSON数据—设置步骤_WenMangZhu的博客-程序员宝宝_jsonformat.js editplus

打开EditPlus,工具>配置用户工具点击组名,重命名工具组,JSON点击 添加工具>应用程序将JsonFormat.js文件放到EditPlus目录下命令行输入 CScript.exe /NoLogo “D:\Program Files\EditPlus\JsonFormat.js” 点击应用、确定ctrl+1 实现快捷格式化...

vue 页面跳转记录位置返回在原来滚动的位置_至_臻的博客-程序员宝宝

第一步:在router文件里面的index.js写入 { path: '/carsList', name: 'CarsList', //汽车列表 component: () => import(/* webpackChunkName: "about" */ '../views/CarsList.vue'), meta: { keepAlive: true //需要缓存 }}上面是跳转路由,主要是在里面添加meta第二步:还是在

随便推点

OpenSL ES与AAudio简单介绍_qw_stone的博客-程序员宝宝_opensl和aaudio的区别

原因:在耳返功能时,如果使用AudioRecord和AudioTrack进行采集与播放会造成延迟问题,故需要涉及到openSL ES与AAudio的使用。概况:OpenSL ES与AAudio简单理解为嵌入式跨平台免费的音频处理库,具有高性能,低延迟的特性。AAudio是作为OpenSL ES库的轻量级原生Android替代项。AAudio性能与功能上更加。但是AAudio只有在Android...

CentOS7.1安装VNC,让Win10远程桌面Linux_一木易的博客-程序员宝宝

VNC 可以实现对另外的计算机的操作:A : 可以访问另一个计算机,采用命令终端 或者窗口界面。B : 可以远程控制另一个计算机,两台同步显示操作。看看简单,但是实际没有readme所说的那么简单。本文介绍在CentOS7.1下安装VNC,让Win7远程桌面Linux解决了不少问题,写个教学贴,给新手们看看,如果你们碰到同样的问题,就可以迅速解决,无需头疼甚至放弃了。1、检查是否安装V...

好程序员高端班 java课堂spring框架精讲_weixin_33955681的博客-程序员宝宝

1、什么是Spring框架?Spring框架有哪些主要模块?  Spring框架是一个为Java应用程序的开发提供了综合、广泛的基础性支持的Java平台。Spring帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发。Spring框架本身亦是按照设计模式精心打造,这使得我们可以在开发环境中安心的集成Spring框架,不必担心Spring是如何在后台进行工作的。  Spring...

一个Quicksort究竟可以写到多么短_LaoLiulaoliu的博客-程序员宝宝

一个Quicksort究竟可以写到多么短一个Quicksort究竟可以写到多么短说实话,我从来没有能一次写对一个快速排序,总是有各种各样的错误。快排麻烦就麻烦在,没办法去调试它,因为它是生成递归的,只能去静态调试,或者是不断的打印数组的状态以推测错误的可能性。然而快排的基本思想却是极其简单的:接收一个数组,挑一个数,然后把比它小的那一摊数放在它的左边,把比它大的那一摊数放在它的右边,然后再对这个数左右两摊数递归的执行快排过程,直到子数组只剩一个数为止。下面我先用最常用的C语言来写一个快速排序:首先可

汽车电子接口CAN总线的EMC设计方案_打怪升级ing的博客-程序员宝宝

汽车电子接口CAN的电磁兼容设计方案一. CAN接口EMC设计概述Controller Area Network简称为CAN,多用于汽车以及工业控制,用于数据的传输控制。在应用的过程中通讯电缆容易耦合外部的干扰对信号传输造成一定的影响,单板内部的干扰也可能通过电缆形成对外辐射。本方案从EMC原理上,通过接口的原理图、PCB、结构及电缆方面进行相关的抑制干扰和抗敏感度设计,从设计层次解决...

Google XTS TV认证测试经验总结_光散落的地方的博客-程序员宝宝_google xts认证

销往海外的Android电视,若想使用Google的应用程序和服务,如YouTube、Gmail、Google Play Store等,必须通过此认证,获得Google授权。此贴详细介绍了Google XTS认证的环境搭建及测试方法。