[Python]核心编程之GUI编程(其他GUI初探)

5 篇文章 0 订阅
2 篇文章 0 订阅

一、Tk Interface eXtensions(Tix)


#! /usr/bin/env python
#coding=utf-8

from Tkinter import Label,Button,END

from Tix import Tk,Control,ComboBox

top = Tk()

top.tk.eval('package require Tix')

lb = Label(top,text='Animals (in pairs; min:pair,max:dozen)')
lb.pack()

ct = Control(top,label='Number:',integer=True,max=12,min=2,value=2,step=2)
ct.label.config(font='Helvetica -12 bold')
ct.pack()

cb = ComboBox(top,label='Type',editable=True)

for animal in ('dog','cat','hamster','python'):
    cb.insert(END,animal)
    
cb.pack()

qb = Button(top,text='Quit',command=top.quit,bg='red',fg='white')
qb.pack()

top.mainloop()


二、Python MegaWidgets(PMW)

#! /usr/bin/env python
#coding=utf-8
from Tkinter import Button,END,Label,W
from Pmw import initialise,ComboBox,Counter

top = initialise()
lb = Label(top,text='Animals (in pairs;min: pair,max: pair)')
lb.pack()

ct = Counter(top,labelpos=W,label_text='Number:',
    datatype='integer',entryfield_value=2,
    increment=2,entryfield_validate={'validator':
    'integer','min':2,'max':12})
ct.pack()

cb = ComboBox(top,labelpos=W,label_text='Type:')
for animal in ('dog','cat','panda','chicken'):
    cb.insert(END,animal)
cb.pack()

top.mainloop()

三、wxWidgets和wxPython

#! /usr/bin/env python
#coding=utf-8
import wx

class MyFrame(wx.Frame):
    def __init__(self,parent=None,id=-1,title=''):
        wx.Frame.__init__(self,parent,id,title,size=(200,400))
        top = wx.Panel(self)
        sizer = wx.BoxSizer(wx.VERTICAL)
        font = wx.Font(9,wx.SWISS,wx.NORMAL,wx.BOLD)
        lb = wx.StaticText(top,-1,'Animals(in pairs: min:pair,max:pair)')
        sizer.Add(lb)
        
        c1 = wx.StaticText(top,-1,'Number:')
        c1.SetFont(font)
        ct = wx.SpinCtrl(top,-1,'2',min=2,max=12)
        sizer.Add(c1)
        sizer.Add(ct)
        
        c2 = wx.StaticText(top,-1,'Type:')
        c2.SetFont(font)
        
        cb = wx.ComboBox(top,-1,'',choices=('dog','panda','cat','tiger'))
        sizer.Add(c2)
        sizer.Add(cb)
        
        qb = wx.Button(top,-1,'quit')
        qb.SetBackgroundColour('red')
        qb.SetForegroundColour('white')
        self.Bind(wx.EVT_BUTTON,lambda e:self.Close(True),qb)
        sizer.Add(qb)
        
        top.SetSizer(sizer)
        self.Layout()
        

class MyApp(wx.App):
    def OnInit(self):
        frame = MyFrame(title='wxWidgets')
        frame.Show()
        self.SetTopWindow(frame)
        return True
    
def main():
    app = MyApp()
    app.MainLoop()
    
if __name__ == '__main__':
    main()
    



四、GTK+和PyGTK

#! /usr/bin/env python
#coding=utf-8

import pygtk
pygtk.require('2.0')
import gtk
import pango

class GTKapp(object):
    def __init__(self):
        top = gtk.Window(gtk.WINDOW_TOPLEVEL)
        top.connect('delete_event',gtk.main_quit)
        top.connect('destroy',gtk.main_quit)
        box = gtk.VBox(False,0)
        lb = gtk.Label('Animals (in pairs: min:pair,max:dozen)')
        box.pack_start(lb)
        
        sb = gtk.HBox(False,0)
        adj = gtk.Adjustment(2,2,12,2,4,0)
        sl = gtk.Label('Number:')
        sl.modify_font(pango.FontDescription('Arial Bold 10'))
        sb.pack_start(sl)
        ct = gtk.SpinButton(adj,0,0)
        sb.pack_start(ct)
        box.pack_start(sb)
        
        cb = gtk.HBox(False,0)
        c2 = gtk.Label('Type:')
        cb.pack_start(c2)
        ce = gtk.combo_box_entry_new_text()
        for animal in ('dog','panda','cat','tiger'):
            ce.append_text(animal)
        cb.pack_start(ce)
        box.pack_start(cb)
        
        qb = gtk.Button("")
        red = gtk.gdk.color_parse('red')
        sty = qb.get_style()
        for st in (gtk.STATE_NORMAL,gtk.STATE_PRELIGHT,gtk.STATE_ACTIVE):
            sty.bg[st] = red
        qb.set_style(sty)
        ql = qb.child
        ql.set_markup('<span color="white">QUIT</span>')
        qb.connect_object("clicked",gtk.Widget.destroy,top)
        box.pack_start(qb)
        top.add(box)
        top.show_all()
        
if __name__ =='__main__':
    animal = GTKapp()
    gtk.main()
    
        
        
        


REF:Core Python Programming













  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值