python3使用tkinter实现ui界面简单实例


Posted in Python onJanuary 10, 2014

python3使用tkinter实现ui界面简单实例

import time
import tkinter as tkclass Window:
    def __init__(self, title='nms', width=300, height=120, staFunc=bool, stoFunc=bool):
        self.w = width
        self.h = height
        self.stat = True
        self.staFunc = staFunc
        self.stoFunc = stoFunc
        self.staIco = None
        self.stoIco = None
        self.root = tk.Tk(className=title)
    def center(self):
        ws = self.root.winfo_screenwidth()
        hs = self.root.winfo_screenheight()
        x = int( (ws/2) - (self.w/2) )
        y = int( (hs/2) - (self.h/2) )
        self.root.geometry('{}x{}+{}+{}'.format(self.w, self.h, x, y))
    def packBtn(self):
        self.btnSer = tk.Button(self.root, command=self.event, width=15, height=3)
        self.btnSer.pack(padx=20, side='left')
        btnQuit = tk.Button(self.root, text='关闭窗口', command=self.root.quit, width=15, height=3)
        btnQuit.pack(padx=20, side='right')
    def event(self):
        self.btnSer['state'] = 'disabled'
        if self.stat:
            if self.stoFunc():
                self.btnSer['text'] = '启动服务'
                self.stat = False
                self.root.iconbitmap(self.stoIco)
        else:
            if self.staFunc():
                self.btnSer['text'] = '停止服务'
                self.stat = True
                self.root.iconbitmap(self.staIco)
        self.btnSer['state'] = 'active'
    def loop(self):
        self.root.resizable(False, False)   #禁止修改窗口大小
        self.packBtn()
        self.center()                       #窗口居中
        self.event()
        self.root.mainloop()
########################################################################
def sta():
    print('start.')
    return True
def sto():
    print('stop.')
    return True
if __name__ == '__main__':
    import sys, os
    w = Window(staFunc=sta, stoFunc=sto)
    w.staIco = os.path.join(sys.exec_prefix, 'DLLs\pyc.ico')
    w.stoIco = os.path.join(sys.exec_prefix, 'DLLs\py.ico')
    w.loop()
Python 相关文章推荐
python实现的重启关机程序实例
Aug 21 Python
Python爬虫之模拟知乎登录的方法教程
May 25 Python
python numpy实现文件存取的示例代码
May 26 Python
python写日志文件操作类与应用示例
Jul 01 Python
python 遍历pd.Series的index和value
Nov 26 Python
python装饰器使用实例详解
Dec 14 Python
python wav模块获取采样率 采样点声道量化位数(实例代码)
Jan 22 Python
python要安装在哪个盘
Jun 15 Python
Django+Uwsgi+Nginx如何实现生产环境部署
Jul 31 Python
Python调用REST API接口的几种方式汇总
Oct 19 Python
4种非常实用的python内置数据结构
Apr 28 Python
Python进度条的使用
May 17 Python
python构造icmp echo请求和实现网络探测器功能代码分享
Jan 10 #Python
python中mechanize库的简单使用示例
Jan 10 #Python
python使用新浪微博api上传图片到微博示例
Jan 10 #Python
python发腾讯微博代码分享
Jan 10 #Python
python实现2014火车票查询代码分享
Jan 10 #Python
python抓取豆瓣图片并自动保存示例学习
Jan 10 #Python
python文件比较示例分享
Jan 10 #Python
You might like
可以在线执行PHP代码包装修正版
2008/03/15 PHP
PHP 采集程序中常用的函数
2009/12/09 PHP
php中在PDO中使用事务(Transaction)
2011/05/14 PHP
PHP面向对象的进阶学习(抽像类、接口、final、类常量)
2012/05/07 PHP
去掉destoon资讯内容页keywords关键字自带的文章标题的方法
2014/08/21 PHP
Laravel实现ORM带条件搜索分页
2019/10/24 PHP
Laravel等框架模型关联的可用性浅析
2019/12/15 PHP
Yii使用EasyWechat实现小程序获取用户的openID的方法
2020/04/29 PHP
让人蛋疼的JavaScript语法特性
2014/09/30 Javascript
node.js中的fs.lchmod方法使用说明
2014/12/16 Javascript
在JavaScript中操作时间之setYear()方法的使用
2015/06/12 Javascript
浅析JS运动
2015/12/28 Javascript
BootstrapTable refresh 方法使用实例简单介绍
2017/02/20 Javascript
在javascript中,null>=0 为真,null==0却为假,null的值详解
2017/02/22 Javascript
vue+vuex+axio从后台获取数据存入vuex实现组件之间共享数据
2017/04/22 Javascript
详解nodeJS之二进制buffer对象
2017/06/03 NodeJs
解析Vue2 dist 目录下各个文件的区别
2017/11/22 Javascript
vue不操作dom实现图片轮播的示例代码
2019/12/18 Javascript
python运行时间的几种方法
2016/06/17 Python
python统计字母、空格、数字等字符个数的实例
2018/06/29 Python
influx+grafana自定义python采集数据和一些坑的总结
2018/09/17 Python
浅谈pycharm出现卡顿的解决方法
2018/12/03 Python
wxpython绘制圆角窗体
2019/11/18 Python
Jupyter 无法下载文件夹如何实现曲线救国
2020/04/22 Python
HTML5的结构和语义(4):语义性的内联元素
2008/10/17 HTML / CSS
HTML5 通过Vedio标签实现视频循环播放的示例代码
2020/08/05 HTML / CSS
美国浴缸、水槽和水龙头购物网站:Vintage Tub & Bath
2019/11/05 全球购物
优秀教师先进事迹
2014/01/22 职场文书
委托协议书范本
2014/04/22 职场文书
国家税务局领导班子对照检查材料思想汇报
2014/10/04 职场文书
党支部群众路线整改措施思想汇报
2014/10/10 职场文书
全国助残日活动总结
2015/05/11 职场文书
导游词之日本富士山
2020/01/06 职场文书
教你用eclipse连接mysql数据库
2021/04/22 MySQL
Java 数据结构七大排序使用分析
2022/04/02 Java/Android
JavaScript实现一键复制内容剪贴板
2022/07/23 Javascript