python在linux制作图形界面(snack)

snack是一个用于在linux制作图形界面(GUI)的模块,该模块由c编写,而且redhat的系统都自带这个模块。

1.获取模块

虽然redhat系统会自带这个模块,但是直接去import snack会提示找不到模块,一个原因是我们重装了系统的python,所以如果直接import不能找到模块,可以通过find命令查找

find / -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.一个snack的demo

#encoding=utf-8__author__ = ‘[email protected]‘

import traceback
from snack import *

screen = SnackScreen()  #实例化一个snack界面

def window():
    btn1 = Button(‘按钮1‘)  #实例化一个按钮组件
    btn2 = Button(‘按钮2‘)  #实例化一个按钮组件
    g = Grid(2, 1)   #实例化一个两列,一行的网格
    g.setField(btn1, 0, 0)  #把组件填充到网格中
    g.setField(btn2, 1, 0)
    screen.gridWrappedWindow(g, "我的界面")
    f = Form()  #实例化一个form
    f.add(g)    #把网格填充到form
    result = f.run()
    screen.popWindow()

def main():
    try:
        window()
    except:
        print traceback.format_exc()
    finally:
        screen.finish()  #关闭snack界面
        return ‘‘

main()

实例化一个SnackScreen后,程序结束时,一定要调用finish,不然终端就会一直显示蓝色的页面,而且该终端已经不可以用了。所以在调试的时候,最好用try,finally的形式,确保程序出错也会执行finish方法。
一个snack页面主要有三种对象组成,一种是组件,例如这里的Button,可以查看snack.py查看到所以可用的组件和方法,可用的组件有Button,Label,Text,Textbox,Checkbox等,第二种是网格,网格主要用于布局,网格里面可以嵌套网格,实现复杂的界面布局。第三种就是form,所有要展示的东西都要放在form里面。

这个demo的界面:

3.回调方法

每一个组件都有一个回调方法的接口,我们可以设置组件的回调方法,来相应用户的操作。

例如上面的demo,我们希望在用户按下按钮1时打印一个"hello"

定义回调的方法

def print_hello():
    print ‘hello‘

在展示界面的语句即 screen.popWindow()后面加入回调方法的设置

btn1.setCallback(print_hello())

4.有了回调方法,我们就可以实现多页面的跳转了

在上面的demo的基础上,新增加一个window2的页面,有一个label,entry(文本输入框)和按钮,点击按钮后,屏幕输出文本框输入的内容。

#encoding=utf-8
__author__ = ‘[email protected]‘

import traceback
from snack import *

screen = SnackScreen()  

def window1():
    btn1 = Button(‘按钮1‘)
    btn2 = Button(‘按钮2‘)  #
    g = Grid(2, 1)
    g.setField(btn1, 0, 0)
    g.setField(btn2, 1, 0)
    screen.gridWrappedWindow(g, "我的界面1")
    f = Form()
    f.add(g)
    result = f.run()

    screen.popWindow()
    btn1.setCallback(window2())  #设置回调方法为界面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)
    screen.gridWrappedWindow(g, "我的界面2")
    f = Form()  #实例化一个form
    f.add(g)    #把网格填充到form
    result = f.run()

    screen.popWindow()
    btn1.setCallback(print_name(entry.value()))

def main():
    try:
        window1()
    except:
        print traceback.format_exc()
    finally:
        screen.finish()  #关闭snack界面
        return ‘‘

main()

界面展示:
第一个界面:

点击按钮1后出现界面2

输入文字,点击按钮,显示信息

参考:http://www.wanware.com/tsgdocs/snack.html

http://pydoc.org/1.5.2/snack.html

python在linux制作图形界面(snack)

时间: 2024-10-07 06:12:29

python在linux制作图形界面(snack)的相关文章

widows本地-xshell实现远程连接linux服务器图形界面

本地环境远程连接linux图形界面,常用的实现工具有,VNC.Puty.Xshell等,这里我们用的xshell manager: Xmanager简介:Xmanager是一个运行于 Windows平台上的高性能的X Server软件.它能把远端Unix/Linux的桌面无缝地带到你的Windows上,甚至电脑是在内网或防火墙后,也能通过SSH协议安全的运行远端的X应用程序. 特点包括: 可通过Xcongfig工具设置多个Xmanager设置: 支持多用户的Windows终端环境: 支持多个IP

Linux非图形界面安装程序

安装Linux程序的时候一般不会调取图形界面,这样输错内容,返回上一步时需要使用命令 previous ,相应的exit 与 next..在中文操作的时候,不会提示,所以要记住 在安装过程中,我们可能有时候需要添加多行,但是一回车就下一布了,不能添加多行,但是注意提示,我们不要迅速的按下一步,而是按提示来,就会有添加选项了

linux字符图形界面

/etc/inittab 1)  字符界面标识: id:3:initdefault: 2)  图形界面标识: id:5:initdefault: [[email protected] ~]# vi /etc/inittab # # inittab       This file describes how the INIT process should set up #               the system in a certain run-level. # # Author:   

Linux 安装图形界面及远程连接

#可查询哪些组件是否已经安装(可用来对照组件名称) yum grouplist yum groupinstall 'X Window System' -y #安装GNOME桌面环境 yum groupinstall 'GNOME Desktop Environment' -y #安装KDE桌面环境 yum groupinstall 'KDE (K Desktop Environment)' 卸载 卸载GNOME桌面环境 yum groupremove GNOME Desktop Environm

linux中图形界面改成文本

修改Linux登陆方式(图形or文本)一般情况下将Linux FC3作为网站服务器用的话,图形界面就不是那么重要,所以要做一些修改,使之启动后进入文本方式.步骤:修改etc/inittab文件找到id:5:initdefault改为id:3:initdefault完成或直接修改/etc/inittab文件把id:5:initdefault修改成id:3:initdefault就可以了具体的运行级别在inittab文件中有说明.如果想改回来,修改成5就可以了 很简单,但是不经常用Linux,所以总

Linux 2 图形界面与命令界面的切换

首先在写切换命令之前说明,一般工作中用到图形界面切换的几率非常小,因为基本都是远程工作,所以在此只做讨论. Linux预设提供了六个命令窗口终端机让我们来登录.默认我们登录的就是第一个窗口,也就是tty1,这六个窗口分别为tty1.tty2...tty6,你可以按下Ctrl+alt+f1~f6来切换它们.如果你安装了图形界面,默认情况下是进入图形界面的,此时你就可以按Ctrl+alt+f1~f6来进入其中一个命令窗口界面.当你进入命令窗口界面后再返回图形界面只要按下Ctrl+alt+f7就回来了

用Python写一个带图形界面的文件压缩软件

文件压缩和解压我们在日常工作学习中会经常用到,比如winrar.快压.好压等压缩软件 打开之后的界面长这个样子: 压缩完成后是这个样子: 解压完成后是这个样子: 大家在学python的时候肯定会遇到很多难题,以及对于新技术的追求,这里推荐一下我们的Python学习扣qun:784758214,这里是python学习者聚集地!!同时,自己是一名高级python开发工程师,从基础的python脚本到web开发.爬虫.django.数据挖掘等,零基础到项目实战的资料都有整理.送给每一位python的小

Redhat Linux安装图形界面

1,挂载光驱 [[email protected] ~]# mkdir /mnt/cdrom [[email protected] ~]# mount /dev/cdrom /mnt/cdrom/ 2,编辑yum配置文件,把光盘中的软件包当作本地源使用 [[email protected] ~]# vim /etc/yum.repos.d/local.repo 编辑保存文件如下: [HighAvailability] name=HighAvailability baseurl=file:///m

python使用easygui写图形界面程序

我 们首先下载一个类库easygui,它是一个Python用于简单开发图形化界面的类库,打开easygui的下载网页 http://sourceforge.net/projects/easygui/?source=directory,点击绿色的下载按钮下载.下载 好后是个后缀名为zip的压缩文件,先解压缩,然后把其中的easygui.py放到python3安装目录中的Lib文件夹中,如 D:\Python33\Lib 2 接下来我们使用easygui创建一个简单的消息框.任意打开一个文本编辑器(