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: [email protected]_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
指定使用哪种验证

Pmw.EntryField

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 = ‘12‘)
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()

原文地址:https://www.cnblogs.com/vocus/p/11462653.html

时间: 2024-10-31 10:40:41

Pmw大控件的相关文章

Material Design Support 8大控件介绍

TextInputLayout 显示提示信息 能够通过调用setError()在EditText以下显示一条错误信息 FloatingActionButton 悬浮操作按钮 Snackbar 相当于底部吐司,但比toast有更强大的高速反馈机制 TabLayout 能够实现固定的选项卡,也实现可滚动的选项卡 Navigation View 在drawlayout实现側滑效果时,取代ListView要适配器的繁琐 1.app:headerLayout: 给NavigationView加入头部布局

Android 布局之LinearLayout 子控件weight权重的作用详析(转)

关于Android开发中的LinearLayout子控件权重android:layout_weigh参数的作用,网上关于其用法有两种截然相反说法: 说法一:值越大,重要性越高,所占用的空间越大: 说法二:值越大,重要性越低,所占用的空间越小. 到底哪个正确?哪个错误?抑或还有其他解释?请点击查看关于weight 权重参数作用的详分析: 其实这两种情况都不太准确: 准确的解释是,weight 权限 是用于分配父控件某一方向上尺寸-所有子控件在该方向上设定尺寸和 所得值的一个参数,把这个相减得到的结

Android 布局之LinearLayout 子控件weight权重的作用详析

关于Android开发中的LinearLayout子控件权重android:layout_weigh参数的作用,网上关于其用法有两种截然相反说法: 说法一:值越大,重要性越高,所占用的空间越大: 说法二:值越大,重要性越低,所占用的空间越小. 到底哪个正确?哪个错误?抑或还有其他解释?请点击查看关于weight 权重参数作用的详分析: 其实这两种情况都不太准确: 准确的解释是,weight 权限 是用于分配父控件某一方向上尺寸-所有子控件在该方向上设定尺寸和 所得值的一个参数,把这个相减得到的结

UIView 控件

苹果将控件的共同属性都抽取到了的父类UIView中 - 所有的控件属性最终都继承自UIView •每个控件都是个容器,能容纳其他控件 •内部小控件是大控件的子控件 •大控件是内部小控件的父控件 •每一个控制器(UIViewController)内部都有个默认的UIView属性 [email protected](nonatomic,retain) UIView *view; -控制器中管理的其他所有控件都是这个view的子控件(直接或者间接) 父子控件: •@property(nonatomic

winform 中调用用户控件中 嵌套用户控件的事件

工作了很久,一直没有很深入的了解C#中的委托和事件. 来到新公司,主要的工作就是使用委托和事件操作数据.一下子不知道该如何下手.各方请教大神,得出下面的方法 1. 在A控件中定义一个事件,B控件触发的时候,调用一下这个事件.然后再在A的父级控件中写方法,+=的方式把方法委托给A的事件就行了 窗体: private void Form1_Load(object sender, EventArgs e)        {            UC_Content content = new UC_

iOS常用控件尺寸大集合

元素控件 尺寸(pts) Window(含状态栏) 320 x 480 Status Bar的高度 20 Navigation Bar的高度 44 含Prompt的Navigation Bar的高度 74 Navigation Bar的图标 20×20(透明的png) Tool Bar的高度 44 Tool Bar的图标 20×20(透明的png) Tab Bar的高度 49 Tab Bar的图标 30×30(透明的png) 竖直时键盘的高度 216.252(iOS 5+的中文键盘) 水平时键盘

ArcGIS for Android地图控件的5大常见操作

原文地址: ArcGIS for Android地图控件的5大常见操作 - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/arcgis_mobile/article/details/7801467   GIS的开发中,什么时候都少不了地图操作.ArcGIS for Android中,地图组件就是MapView,MapView是基于Android中ViewGroup的一个类(参考),也是ArcGIS Runtime SDK for

Atitit. BigConfirmTips 控件 大数据量提示确认控件的原理and总结O9

Atitit. BigConfirmTips 控件 大数据量提示确认控件的原理and总结O9 1. 主要的涉及的技术 1 2. 主要的流程 1 3. 调用法new confirmO9t(); 1 4. 设置确认在后的回溯事件 c.backHandle="window.opener.confirmSubmitBackeventHandle"; 2 5. 设置详细表格显示模板  c.tmplt="/publish/lookOverdetail_templt.jsp";

[WP8.1UI控件编程]Windows Phone大数据量网络图片列表的异步加载和内存优化

11.2.4 大数据量网络图片列表的异步加载和内存优化 虚拟化技术可以让Windows Phone上的大数据量列表不必担心会一次性加载所有的数据,保证了UI的流程性.对于虚拟化的技术,我们不仅仅只是依赖其来给列表加载数据,还可以利用虚拟化的特性去做更多的事情.虚拟化技术有一个很重要的特性就是,它可以准确地判断出哪些列表项处于手机屏幕中,可以动态地去更新这些数据.基于这样的特性,我们可以给列表的功能做更多的优化. 那么下面我们基于一个例子来讲解利用虚拟化技术去做列表的性能优化.有这么一个需求,需要