PyQt4使用QDialogButtonBox操作实例代码讲解
来源:互联网 发布:阿里云服务器推荐码 编辑:程序博客网 时间:2024/05/20 23:37
#coding=utf8'''定义一个"dump"的对话框,该对话框的widget通过对话框的调用者设置为初始对象值,对话框的最终值再次通过对话框的调用者直接从widget中获得。一个dump的对话框不知道把它的小部件用于呈现和编辑哪些数据。但是,也可以应用一些基本的验证在一个dump对话框widget上,但是设置包含widget之间相互依赖关系的验证并不常见(或总是可能)。换句话说,form-level验证通常不在dump对话框中使用。dump对话通常是带有一个“accept(或者OK)”和一个"reject(或者Cancel)"按钮的对话窗口。使用dump对话的主要优点是不必编写任何代码来为对话提供一个API,也不用编写任何附加逻辑的代码。这些好处都是公开访问所有小部件的结果。主要的缺点是使用它们的代码与用户界面(直接访问窗口小部件)紧紧相关,所以无法轻松实现复杂的验证 - 它们比标准方便得多或智能对话框,如果需要在多个地方。下面给出一个实例用来说明:该对话是一个用户设置一些笔属性,例如笔的宽度、样式、是否斜边。该对话框包含的widget:三个水平框、有一个垂直框、整数范围调节器、复选框、下拉框、按钮框。在PyQt 4.1提供一个Button对话框组件:QDialogButtonBox类。通过该类可以创建OK和Cancel按钮。例如:buttonBox=QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)当用户按Enter时,默认按钮被按下,默认按钮设置方式如下:buttonBox.button(QDialogButtonBox.Ok).setDefault(True)一个QDialogButtonBox单个widget,所以可以直接添加到存在的layout中。下面给出一个添加到网格布局容器的实例代码:gridLayout.addWidget(buttonBox,3,0,1,3) #在三行一列,行跨度为1,列跨度为3QDialogButtonBox有自己的按钮信号,连接操代码如下:self.connect(buttonBox, SIGNAL("accepted()"),self, SLOT("accept()")) #确认或者OK按钮self.connect(buttonBox, SIGNAL("rejected()"),self, SLOT("reject()"))#取消或者Cancel按钮QDialogButtonBox默认使用水平布局,但是可以传递Qt.Vertical到它的构造函数设置为垂直布局,或者调用setOrientation()函数'''import sys from PyQt4.QtCore import *from PyQt4.QtGui import *#创建一个dump对话框class dumpDialog(QDialog): def __init__(self,parent=None): super(dumpDialog,self).__init__(parent) #创建布局框容器 qvbLayout=QVBoxLayout() whbLayout=QHBoxLayout() shbLayout=QHBoxLayout() btnhbLayout=QHBoxLayout() ''' 当在标签的文本中加上&符号(&)时, 它可以有两个可能的含义。 它可以只是一个文字和号。 或者它可以表示不应该显示&符号, 而是应该加下划线,以表示它代表键盘加速器(快捷键)。 如何在一个文字符号与一个加字符进行区分呢?如果label有一个buddy, 则这个符号表示键盘加速器(快捷键)。 一个buddy是一个widget, 当label相关的键盘快捷键被按下时, pyqt传递键盘焦点到该widget。 快捷键是:Alt+名字开头字母 ''' wlabel=QLabel("&Width:") self.wspinbox=QSpinBox() self.wspinbox.setRange(1,25) self.wspinbox.setValue(5) #设置快捷定位方式 wlabel.setBuddy(self.wspinbox) bcheck=QCheckBox("&Beveled edges") bcheck.setChecked(True) styleLabel=QLabel("&Style:") self.styleQcombox=QComboBox() self.styleQcombox.addItems(["Solid", "Dashed", "Dotted","DashDotted", "DashDotDotted"]) styleLabel.setBuddy(self.styleQcombox) buttonBox=QDialogButtonBox(QDialogButtonBox.Ok| QDialogButtonBox.Cancel) buttonBox.button(QDialogButtonBox.Ok).setDefault(True) whbLayout.addWidget(wlabel) whbLayout.addWidget(self.wspinbox) whbLayout.addWidget(bcheck) qvbLayout.addLayout(whbLayout) shbLayout.addWidget(styleLabel) shbLayout.addWidget(self.styleQcombox) qvbLayout.addLayout(shbLayout) btnhbLayout.addWidget(buttonBox) qvbLayout.addLayout(btnhbLayout) #使用SLOT方法连接按钮 self.connect(buttonBox, SIGNAL("accepted()"),self, SLOT("accept()")) #确认或者OK按钮 self.connect(buttonBox, SIGNAL("rejected()"),self, SLOT("reject()"))#取消或者Cancel按钮 self.setLayout(qvbLayout) self.setWindowTitle("Pen Properties") app=QApplication(sys.argv)form=dumpDialog()form.show()app.exec_()
阅读全文
0 0
- PyQt4使用QDialogButtonBox操作实例代码讲解
- QDialogButtonBox
- Hive操作语句的使用实例讲解
- Hive操作语句的使用实例讲解
- Hive操作语句的使用实例讲解
- Hive操作语句的使用实例讲解
- Hive操作语句的使用实例讲解
- PyQt4的信号与插槽中简单实例源码讲解
- PyQt4一个button对应一个slot(插槽)实例源码讲解
- 操作符实例讲解
- PyQt4 精彩实例分析* 实例2 标准对话框的使用
- PyQt4 精彩实例分析* 实例4 使用标准输入框
- PyQt4 精彩实例分析* 实例7 表格的使用
- PyQt4 精彩实例分析* 实例8 使用进度条
- PyQt4 精彩实例分析* 实例2 标准对话框的使用
- PyQt4 精彩实例分析* 实例4 使用标准输入框
- PyQt4 精彩实例分析* 实例7 表格的使用
- PyQt4 精彩实例分析* 实例8 使用进度条
- RMQ 原理
- JAVA高级工程师课程笔记整理——(二)JAVA基础
- 友好城市
- Linux系统常用基本命令(三)
- 智能卡水表管理系统功能介绍
- PyQt4使用QDialogButtonBox操作实例代码讲解
- C++实验题---填空(类与继承A)
- Eclipse中Android SDK Manager无法下载的解决办法
- t-sql-ado.net学习ado.net
- iOS坑-tableHeadView的高度变化
- F4_SDIO驱动
- leetcode 514 freedom trail
- 最简单的纯js实现点击展开二级菜单功能
- 使用python下载一些链接的软件包