Pmw大控件

Posted vocus

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
指定使用哪种验证

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()

技术图片

以上是关于Pmw大控件的主要内容,如果未能解决你的问题,请参考以下文章

窗体控件应用总结

VB使用webbrowser控件时怎样释放内存?我使用了许多webbrowser数组时,只见占用内存越来越大。最后崩溃

delphi中有没将控件中的字体变大变小的快捷键?或者可不可以整体修改,一个个改好麻烦.

文件上传控件-如何上传文件-大文件下载

Repeater控件里的大智慧

linux 磁盘控件找到大文件