Pmw大控件
Python大控件——Pmw——是合成的控件,以Tkinter控件为基类,是完全在Python内写的。它们可以很方便地增加功能性的应用,而不必写一堆代码。特别是,组合框和内部确认计划的输入字段放在一起是个很有用的控件。
1.关于框(AboutDialog)
from tkinter import *
import Pmw root=Tk() Pmw.aboutversion("1.5")
Pmw.aboutcopyright('Copyright Company Name 1999\nAll rights reserved')
Pmw.aboutcontact(
'For information about this application contact:\n' +
' Sales at Company Name\n' +
' Phone: (401) 555-1212\n' +
' email: info@company_name.com'
) about=Pmw.AboutDialog(root,applicationname="") root.mainloop()

2.输入域
一个输入域(entry field)包含一个entry控件和多种可验证的选项。验证由一个函数执行,该函数将输入的文本作为第一个参数,并且返回三种标准值的一种,标志输入文本是否合法:
Pmw.OK:输入文本合法
Pmw.ERROR:文本非法无法显示,entry将恢复之前存储的合法的值
Pmw.PARTIAL:文本有部分合法,文本将加上用以表示输入错误的背景。
函数参数
·command
·errorbackground
默认是pink,指定输入非法或部分合法文本时,显示的背景色
·extravalidators
·invalidcommand
当输入非法文本时执行该函数,当使用setentry()设置一个非法文本,该函数也会被调用
·labelmargin
·labelpos
初始化选项,指定label组件放置在何处,如果非None,它应该是“n”,"s","e","w",中的一个或两两组合。第一个字母指定label放置在大控件的那一边,如果第二个字母也指定了,那么它表示在那一边的什么位置放置label。比如,如果labelpos是“w”,label将放置在大控件左边的中间位置;如果是“wn”,label将被放置在左边的顶部。
如果为None,那么label将不会被创建。它的默认值为None
·modifiedcommand
当entry里的值被修改时调用
·sticky
初始化选项,默认为"ew
·value
初始化选项,指定entry中初始化内容
·validate
指定使用哪种验证
from tkinter import *
import Pmw
root = Tk()
root.option_readfile('optionDB')
root.title('EntryField')
Pmw.initialise() noval = Pmw.EntryField(root, labelpos=W, label_text='No validation',
validate = None) real = Pmw.EntryField(root, labelpos=W, value = '98.4',
label_text = 'Real (96.0 to 107.0):',
validate = {'validator' : 'real',
'min' : 96, 'max' : 107, 'minstrict' : 0}) int = Pmw.EntryField(root, labelpos=W, label_text = 'Integer (5 to 42):',
validate = {'validator' : 'numeric',
'min' : 5, 'max' : 42, 'minstrict' : 0},
value = '')
date = Pmw.EntryField(root, labelpos=W, label_text = 'Date (in 2000):',
value = '2000/1/1', validate = {'validator' : 'date',
'min' : '2000/1/1', 'max' : '2000/12/31',
'minstrict' : 0, 'maxstrict' : 0,
}) widgets = (noval, real, int, date) for widget in widgets:
widget.pack(fill=X, expand=1, padx=10, pady=5)
Pmw.alignlabels(widgets)
real.component('entry').focus_set() root.mainloop()

3.浮动图(Balloon)
from tkinter import *
import Pmw
root=Tk()
Pmw.initialise()
balloon=Pmw.Balloon(root)
frame=Frame(root)
frame.pack(padx=10,pady=5)
field=Pmw.EntryField(frame,labelpos="w",label_text="Name") field.setentry("A.N.Other")
field.pack(side=LEFT,padx=10) balloon.bind(field,"Your name","Enter your name") check=Button(frame,text="check")
check.pack(side=LEFT,padx=10) balloon.bind(check,"Look up","Check if name is in the database") messageBar=Pmw.MessageBar(root,entry_width=40,entry_relief=GROOVE,labelpos=W,label_text="Status:") messageBar.pack(fill=X,expand=1,padx=10,pady=5)
balloon.configure(statuscommand=messageBar.helpmessage) root.mainloop()

4.按钮框
from tkinter import *
import Pmw
root=Tk()
Pmw.initialise() def buttonPress(btn):
print("The %s button was pressed"%btn) def defaultKey(event):
buttonBox.invoke() buttonBox=Pmw.ButtonBox(root,labelpos="nw",label_text="ButtonBox:")
buttonBox.pack(fill=BOTH,expand=1,padx=10,pady=10) buttonBox.add("OK",command=lambda b="ok":buttonPress(b))
buttonBox.add("Apply",command=lambda b="Apply":buttonPress(b))
buttonBox.add("Cancel",command=lambda b="Cancel":buttonPress(b)) buttonBox.setdefault("OK")
root.bind("<Return>",defaultKey)
root.focus_set()
buttonBox.alignbuttons()
root.mainloop()

5.组合框
from tkinter import *
import Pmw
root=Tk() choice=None def choseEntry(entry):
print("You chose %s"%entry)
choice.configure(text=entry) asply=("The Mating of the Wersh","Two Netlemeng of Verona","Twelfth Thing","The Chamrent of vanice","Thamle","Ring Kichard the Thrid") choice=Label(root,text="Choose play",relief="sunken",padx=20,pady=20)
choice.pack(expand=1,fill="both",padx=8,pady=8) combobox=Pmw.ComboBox(root,label_text="Play:",labelpos="wn",
listbox_width=24,dropdown=1,
selectioncommand=choseEntry,
scrolledlist_items=asply)
combobox.pack(fill=BOTH,expand=1,padx=8,pady=8)
combobox.selectitem(asply[0])

Pmw大控件的更多相关文章
- Pmw大控件(二)
Pmw大控件英文名Pmw Python megawidgets 官方参考文档:Pmw 1.3 Python megawidgets 一,如何使用Pmw大控件 下面以创建一个计数器(Counter)为例 ...
- wpf 大控件 打印 将控件转成 xps格式 并分页打印
//PayRollPrintList:要打印的 list 可换成自己要打印的类型 private List<PayRoll> _PayRollPrintList = new List< ...
- Material Design Support 8大控件介绍
TextInputLayout 显示提示信息 能够通过调用setError()在EditText以下显示一条错误信息 FloatingActionButton 悬浮操作按钮 Snackbar 相当于底 ...
- Android 布局之LinearLayout 子控件weight权重的作用详析(转)
关于Android开发中的LinearLayout子控件权重android:layout_weigh参数的作用,网上关于其用法有两种截然相反说法: 说法一:值越大,重要性越高,所占用的空间越大: 说法 ...
- Android 布局之LinearLayout 子控件weight权重的作用详析
关于Android开发中的LinearLayout子控件权重android:layout_weigh参数的作用,网上关于其用法有两种截然相反说法: 说法一:值越大,重要性越高,所占用的空间越大: 说法 ...
- winform布局 FlowLayoutPanel的控件
http://www.cnblogs.com/moon-mountain/archive/2011/09/08/2171232.html 1.采用流布局:工具箱里边容器里有一个:FlowLayoutP ...
- [WP8.1UI控件编程]Windows Phone大数据量网络图片列表的异步加载和内存优化
11.2.4 大数据量网络图片列表的异步加载和内存优化 虚拟化技术可以让Windows Phone上的大数据量列表不必担心会一次性加载所有的数据,保证了UI的流程性.对于虚拟化的技术,我们不仅仅只是依 ...
- Atitit.hybrid混合型应用 浏览器插件,控件的实现方式 浏览器运行本地程序的解决方案大的总结---提升用户体验and开发效率..
Atitit.hybrid混合型应用 浏览器插件,控件的实现方式 浏览器运行本地程序的解决方案大的总结---提升用户体验and开发效率.. 1. hybrid App 1 1.1. Hybrid Ap ...
- Atitit. BigConfirmTips 控件 大数据量提示确认控件的原理and总结O9
Atitit. BigConfirmTips 控件 大数据量提示确认控件的原理and总结O9 1. 主要的涉及的技术 1 2. 主要的流程 1 3. 调用法new confirmO9t(); 1 4. ...
随机推荐
- Unity UGUI优化整理
看了不少UI优化方面的东西,还是记下来方便记忆,优化性能往往是在各种选择之间做出平衡(空间换时间,或者GPU换CPU,舍弃精度等). 主要优化点在减少Drawcall,减少Overdraw. Mask ...
- CodeForces - 782B The Meeting Place Cannot Be Changed(精度二分)
题意:在一维坐标轴上,给定n个点的坐标以及他们的最大移动速度,问他们能聚到某一点处的最短时间. 分析: 1.二分枚举最短时间即可. 2.通过检查当前时间下,各点的最大移动范围之间是否有交集,不断缩小搜 ...
- POJ 2996:Help Me with the Game
Help Me with the Game Time Limit: 1000MS Memory Limit: 65536KB 64bit IO Format: %I64d & %I64 ...
- tableau创建蜘蛛图
tableau官方案例2:创建起点和终点的路径地图 (spider Maps) 源数据样式: 应用:交通图 步骤及注意: 将Line Group (Path ID)维度放入标记卡详细信息 默认的为聚 ...
- 量化投资_Multicharts数组操作函数_append()追加函数(自定义)
1. Multicharts中关于数组的操作比较麻烦,而且当中所谓的动态数组的定义并不是像其他语言那种的概念.因此要对数组进行元素“”追加“”的话,需要重新更改数组的索引,然后再最后一个位置添加val ...
- MVC学生管理系统-阶段IV(修改学生信息)
项目源码 :https://download.csdn.net/download/weixin_44718300/11091042 前期准备,主体框架, 学生列表显示 请看阶段一文章 添加学生信息 ...
- 虚拟机vmware vmnet8 未识别(转)
原文链接:https://blog.csdn.net/windows_q/article/details/50678646
- LIS是什么?【通讯】
Ⅲ最后一点,通讯. 从字面意义来看,通讯是一种沟通形式,信息交互的媒介.在LIS中,通讯主要指的是仪器通讯,也就是仪器与电脑-LIS系统的信息交互方式,也可以称为仪器接口. 在LIS中,通讯是最基础也 ...
- c# 数据库操作,多数据库操作、数据库操作异常报错等问题
1.引入相关的命名空间 在C#中要操作数据库,一般情况需要引入两个命名空间,在三种连接模式中都要引入下面的命名空间: System.Data;描述与数据源连接的当前状态. // // 摘要: // 连 ...
- 使用java service wrapper将java程序注册为window服务
1.下载java service wrapper 下载地址:http://wrapper.tanukisoftware.com/doc/english/download.jsp 针对自己的需求下载相应 ...