一、简介
snack是一个用于在linux制作图形界面(GUI)的模块,该模块由c编写,而且redhat的系统都自带这个模块。Snack是python对newt的接口,Newt是一个为RedHat-linux安装程序而设计的基于文本的窗口开发工具, 并不依赖X包,所以Snack可以为安装程序设计简单的窗口界面。
借助snack可开发Linux安装程序字符界面。在Linux系统安装过程中选择文本模式安装,安装过程中出现的snack的界面。
二、详解
1、获取模块
若在Python中from snack import *,找不到模块,可以使用find命令查找:find /usr/lib64/python2.6/ -name snack.py。显示结果:/usr/lib64/python2.6/site-packages/snack.py,则只需要在目录/usr/lib64/python2.6/site-packages/下复制snack.py和_snackmodule.so这两个文件复制到当前项目中,就能通过from snack import * 来导入snack模块。
2、demo程序
(1)代码:
#encoding=utf-8
import traceback
from snack import *
screen = SnackScreen()
def window1():
btn2 = Button('按钮1')
btn3 = Button('按钮2')
g = Grid(2, 1)
g.setField(btn2, 0, 0)
g.setField(btn3, 1, 0)
screen.gridWrappedWindow(g, "我的界面1")
f = Form()
f.add(g)
result = f.run()
screen.popWindow()
btn2.setCallback(window2()) #设置回调方法为界面2
btn3.setCallback(leave()) #设置回调方法为界面2
def window2():
def print_name(name):
print '你的名称是:%s' % name
label = Label('请输入名称:')
entry = Entry(10, '')
btn1 = Button('确定')
g = Grid(2, 2)
g.setField(label, 0, 0)
g.setField(entry, 1, 0)
g.setField(btn1, 1, 1)
sc