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中用fork()函数生成的子进程
May 04 Python
python3操作微信itchat实现发送图片
Feb 24 Python
VScode编写第一个Python程序HelloWorld步骤
Apr 06 Python
Python获取系统所有进程PID及进程名称的方法示例
May 24 Python
python实现内存监控系统
Mar 07 Python
Django中的Model操作表的实现
Jul 24 Python
Python反爬虫技术之防止IP地址被封杀的讲解
Jan 09 Python
python环境路径配置以及命令行运行脚本
Apr 02 Python
对python中的float除法和整除法的实例详解
Jul 20 Python
python中tkinter窗口位置\坐标\大小等实现示例
Jul 09 Python
详解使用Python写一个向数据库填充数据的小工具(推荐)
Sep 11 Python
Python基于Serializer实现字段验证及序列化
Nov 04 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采用curl模仿用户登陆新浪微博发微博的方法
2014/11/07 PHP
CentOS安装php v8js教程
2015/02/26 PHP
PHP定时任务获取微信access_token的方法
2016/10/10 PHP
PHP那些琐碎的知识点(整理)
2017/05/20 PHP
php实现支持中文的文件下载功能示例
2017/08/30 PHP
PHP 使用二进制保存用户状态的实例
2018/01/29 PHP
用原生JS获取CLASS对象(很简单实用)
2014/10/15 Javascript
PHP中使用微秒计算脚本执行时间例子
2014/11/19 Javascript
JavaScript缓冲运动实现方法(2则示例)
2016/01/08 Javascript
仅一个form表单 js实现注册信息依次填写提交功能
2016/06/12 Javascript
JS实现间歇滚动的运动效果实例
2016/12/22 Javascript
JS中IP地址与整数相互转换的实现代码
2017/04/10 Javascript
面包屑导航详解
2017/12/07 Javascript
vue代理和跨域问题的解决
2018/07/18 Javascript
angularjs $http调用接口的方式详解
2018/08/13 Javascript
js如何获取图片url的Blob值并预览示例代码
2019/03/07 Javascript
详解JavaScript 浮点数运算的精度问题
2019/07/23 Javascript
了不起的11个JavaScript代码重构最佳实践小结
2021/01/11 Javascript
[52:00]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs Optic
2018/04/02 DOTA
Python3结合Dlib实现人脸识别和剪切
2018/01/24 Python
Python实现简单http服务器
2018/04/12 Python
django 通过ajax完成邮箱用户注册、激活账号的方法
2018/04/17 Python
基于Python3读写INI配置文件过程解析
2020/07/23 Python
3分钟看懂Python后端必须知道的Django的信号机制
2020/07/26 Python
详解pycharm连接远程linux服务器的虚拟环境的方法
2020/11/13 Python
Django利用elasticsearch(搜索引擎)实现搜索功能
2020/11/26 Python
英超联赛的首选足球:Mitre足球
2019/05/06 全球购物
对象的序列化(serialization)类是面向流的,应如何将对象写入到随机存取文件中
2015/06/22 面试题
委托书模板
2014/04/04 职场文书
车间核算员岗位职责
2014/07/01 职场文书
爬山的活动方案
2014/08/16 职场文书
党员自我剖析材料范文
2014/10/06 职场文书
新生儿未入户证明
2015/06/23 职场文书
通知怎么写?
2019/04/17 职场文书
2019年第四季度财务部门工作计划
2019/11/02 职场文书
关于JS中的作用域中的问题思考分享
2022/04/06 Javascript