PyQt学习笔记(6)——Actions and Key Sequences
来源:互联网 发布:sqlyog修改数据库密码 编辑:程序博客网 时间:2024/05/13 21:31
在Qt中,目前我认为做的最好的两种机制就是:SIGNAL and SLOTS和Actions and Key Sequences。
Actions and Key Sequence我对他的理解就是各种动作带来的核心一致反应。举个例子:
比如我们在应用程序中常见的“新建文件”这一功能,他的实现可以通过下面几种方式:
1 点击菜单:File->New菜单项
2 点击工具栏:new的图标
3 键盘快捷方式:如Ctrl+N
上面的这三种actions,其实带来的结果(Sequence)是一样的,就是新建文件,那么在程序中如何做到三者的统一和同步,Qt给了很好的解决方法。在PyQt中,它把类似上面的actions封装(encapsulates)到一个Qaction的class中,下面举个例子:(windows环境下)
#!/usr/bin/env python
#coding=utf-8
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class MainWindow(QMainWindow):
def main():
main()
上面程序的目的就是:要让点击菜单new,Ctrl+N,点击工具栏new按钮三种action都执行一个命令fileNew()。
其中红色部分就是Qaction部分,其中的QKeySequence.New 就是基本多平台都统一使用的新建的响应快捷键Ctrl+N,如果我们需要的快捷键没有,那么我们可以自己设置,就是填写快捷键的名称比如:fileNewAction.setShortcut(“Ctrl+N”)。把这个action都给了菜单new和工具栏,通过connect绑定,他们都执行同一响应。
从上面可以看到,每次创建一个QAction都需要五六行,如果在一个应用程序中都这么创建会很费时间的,所以我们可以写一个函数来封装这一功能:
有了这个函数以后,我们可以定义上面的fileNewAction了:
fileNewAction = self.createAction("&New...", self.fileNew,
一句话搞定。QKeySequence.New也可以用”Ctrl+n”代替
- PyQt学习笔记(6)——Actions and Key Sequences
- PyQt学习笔记(6)--Actions and Key Sequence
- PyQt学习笔记(16)——QTreeWidget
- PyQt学习笔记——常用控件
- PyQt学习笔记(7)--Events and Signals
- PyQt学习笔记(1)——Hello world
- PyQt学习笔记(2)——Dumb Dialogs
- PyQt学习笔记(3)——Standard Dialogs
- PyQt学习笔记(4)——Smart Dialogs
- PyQt学习笔记(5)——Mian Window
- PyQt学习笔记(7)——Qt Designer(1)
- PyQt学习笔记(7)——Qt Design…
- PYQT笔记——QFileDialog
- PYQT笔记——QTableView
- PyQt学习笔记一
- pyqt 学习笔记
- PyQt学习笔记(10)--QSetting
- PyQt学习笔记(11)--QTreeWidget
- Android UI 之WaterFall瀑布流效果
- 特定长度字段左边填补0
- LeetCode | Convert Sorted List to Binary Search Tree
- 从 相对路径 说开来(从C++到Qt)
- 什么叫内存对齐 -就是字节对齐
- PyQt学习笔记(6)——Actions and Key Sequences
- pthread_cleanup_push与pthread_cleanup_pop的目的 作用
- Apache下的虚拟主机设置
- div style常用属性和实例代码
- Cocos2dx 播放flash动画
- oracle psu 情况
- android无法运行问题处理
- PyQt学习笔记(7)——Qt Designer(1)
- 分享一个xcode小插件,KSImageNamed-Xcode