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中字典(Dictionary)用法实例详解
May 30 Python
使用Python神器对付12306变态验证码
Jan 05 Python
Python的GUI框架PySide的安装配置教程
Feb 16 Python
Python检测生僻字的实现方法
Oct 23 Python
Python对字符串实现去重操作的方法示例
Aug 11 Python
Python单例模式的两种实现方法
Aug 14 Python
基于Python socket的端口扫描程序实例代码
Feb 09 Python
基于python list对象中嵌套元组使用sort时的排序方法
Apr 18 Python
用Python实现将一张图片分成9宫格的示例
Jul 05 Python
python 的topk算法实例
Apr 02 Python
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 Python
利用Python判断整数是否是回文数的3种方法总结
Jul 07 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实现网站顶踩功能的完整前端代码
2015/07/19 PHP
php编程实现简单的网页版计算器功能示例
2017/04/26 PHP
PHP定义字符串的四种方式详解
2018/02/06 PHP
实现局部遮罩与关闭原理及代码
2013/02/04 Javascript
javascript实现瀑布流自适应遇到的问题及解决方案
2015/01/28 Javascript
jquery实现的点击翻书效果代码
2015/11/04 Javascript
基于jQuery实现网页打印功能
2015/12/01 Javascript
jquery中ajax处理跨域的三大方式
2016/01/05 Javascript
微信小程序 loading(加载中提示框)实例
2016/10/28 Javascript
JS实现的相册图片左右滚动完整实例
2016/11/23 Javascript
jQuery使用Layer弹出层插件闪退问题
2016/12/22 Javascript
js实现背景图自适应窗口大小
2017/01/10 Javascript
Spring shiro + bootstrap + jquery.validate 实现登录、注册功能
2017/06/02 jQuery
解析Vue 2.5的Diff算法
2017/11/28 Javascript
vue 项目中使用Loading组件的示例代码
2018/08/31 Javascript
vue中监听返回键问题
2019/08/28 Javascript
原生javascript单例模式的应用实例分析
2020/02/23 Javascript
JavaScript 实现轮播图特效的示例
2020/11/05 Javascript
Python学习笔记之os模块使用总结
2014/11/03 Python
Python中optparse模块使用浅析
2015/01/01 Python
Python3读取文件常用方法实例分析
2015/05/22 Python
Python 装饰器深入理解
2017/03/16 Python
python3.4用函数操作mysql5.7数据库
2017/06/23 Python
Python使用arrow库优雅地处理时间数据详解
2017/10/10 Python
python实现抖音视频批量下载
2018/06/20 Python
Python实现手写一个类似django的web框架示例
2018/07/20 Python
深入浅析Python获取对象信息的函数type()、isinstance()、dir()
2018/09/17 Python
Python OpenCV中的resize()函数的使用
2019/06/20 Python
Python是什么 Python的用处
2020/05/26 Python
css3的transition效果和transfor效果示例介绍
2013/10/30 HTML / CSS
HTML5本地存储之Web Storage详解
2016/07/04 HTML / CSS
英国亚马逊官方网站:Amazon.co.uk
2019/08/09 全球购物
一套带答案的C++笔试题
2014/01/10 面试题
挂职个人工作总结
2015/03/05 职场文书
关于运动会的宣传稿
2015/07/23 职场文书
Java设计模式之代理模式
2022/04/22 Java/Android