您正在查看: 标签 PYTHON 下的文章
icon-plus

PyQt4——自制带提示的滑动槽

在写那个引擎配置器的过程中,发现PyQt4的滑动槽并没有那么好用

对比下Windows的滑动槽,我们可以很容易的发现一个问题

比如调节音量的音量柄,我们在拖动的时候,它会在旁边伴随着一个气泡提示

可是我们在PyQt4的滑动柄上并没有发现这个功能,拖着完全就是瞎拖,完全没有一个量的概念

icon-plus

PyQt4——实现窗口拖动

接着前面的隐藏标题栏之后,我们可以自制关闭按钮,最大化按钮和最小化按钮,但是有一个功能可能我们没有办法很直接的实现

就是有标题栏的时候,程序可以直接通过鼠标拖动来改变位置。

现在没有标题栏了,怎么样才能实现拖动窗口来改变位置呢?

经过查阅PyQt官方文档,发现QMainWndow是继承QWidget类的

http://pyqt.sourceforge.net/Docs/PyQt4/qwidget.html

而QWidget里面有计个默认的监听方法,譬如:

那么按照面向对象的思想来说,我们只需重写这些方法,就可以达到我们需要的效果

icon-plus

PyQt4——隐藏程序标题栏

今天在写自己的配置器的时候,由于上了自定义的CSS样式风格,使得跑起程序来,感觉windows自带的外边框很不搭调,挺难看的


于是想办法去掉,弄了半天,发现有一个比较好的通用的方法

icon-plus

PyQt4——处理用户界面事件,信号槽机制

PyQt的信号槽机制又是它的一大特色,刚接触到这个东西,感觉真的很神奇

信号和槽这个概念本身有点像是物理学的概念,但其实对我来说并不觉得陌生

以前玩MineCraft,也就是我的世界的时候,里面有个红石系统,其实就是玩的这个

一个开关,用红石导线连接到活塞

开关打开,就产生了红石信号,并通过红石作为导线发射到活塞,活塞收到信号之后就被推了出去

里面的红石信号就相当于这里的信号,活塞就相当于这里的槽,槽收到信号之后会触发一系列的事情

又比如说田径场上正在比赛的运动员,一听到枪声,就随声起跑

枪声就是信号,运动员的大脑就是槽,大脑接收到信号之后就开始条件反射的起跑

PyQt通过在方法间建立信号槽机制,可以轻松的管理用户的操作,比如点击按钮,使用快捷键等

下面一张图简单明了地解释了信号和槽的关系