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去掉字符串中重复字符的方法
Feb 27 Python
谈谈Python进行验证码识别的一些想法
Jan 25 Python
Python实现递归遍历文件夹并删除文件
Apr 18 Python
Python利用前序和中序遍历结果重建二叉树的方法
Apr 27 Python
Python打包可执行文件的方法详解
Sep 19 Python
python3.5 + PyQt5 +Eric6 实现的一个计算器代码
Mar 11 Python
Django中的用户身份验证示例详解
Aug 07 Python
Python pip 安装与使用(安装、更新、删除)
Oct 06 Python
Python爬取新型冠状病毒“谣言”新闻进行数据分析
Feb 16 Python
django 链接多个数据库 并使用原生sql实现
Mar 28 Python
Python批量处理csv并保存过程解析
May 16 Python
PyTorch梯度裁剪避免训练loss nan的操作
May 24 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按百分比生成缩略图的代码分享
2014/05/10 PHP
PHP的文件操作与算法实现的面试题示例
2015/08/10 PHP
php实现遍历多维数组的方法
2015/11/25 PHP
thinkPHP下ueditor的使用方法详解
2015/12/26 PHP
EarthLiveSharp中cloudinary的CDN图片缓存自动清理python脚本
2017/04/04 PHP
php中各种定义变量的方法小结
2017/10/18 PHP
PDO::inTransaction讲解
2019/01/28 PHP
YII2框架中使用RBAC对模块,控制器,方法的权限控制及规则的使用示例
2020/03/18 PHP
实用javaScript技术-屏蔽类
2006/08/15 Javascript
写出更好的JavaScript程序之undefined篇(中)
2009/11/23 Javascript
jQuery实现 注册时选择阅读条款 左右移动
2013/04/11 Javascript
一个JavaScript的求爱小特效
2014/05/09 Javascript
angularjs实现与服务器交互分享
2014/06/24 Javascript
Javascript递归打印Document层次关系实例分析
2015/05/15 Javascript
js实现随机抽选效果、随机抽选红色球效果
2017/01/13 Javascript
Bootstrap 手风琴菜单的实现代码
2017/01/20 Javascript
Angular.js中ng-if、ng-show和ng-hide的区别介绍
2017/01/20 Javascript
vue-resource拦截器设置头信息的实例
2017/10/27 Javascript
原生JS实现留言板
2020/03/26 Javascript
python模块restful使用方法实例
2013/12/10 Python
详解Python下Flask-ApScheduler快速指南
2018/11/04 Python
Python 实现Serial 与STM32J进行串口通讯
2019/12/18 Python
Python3常见函数range()用法详解
2019/12/30 Python
Python通过VGG16模型实现图像风格转换操作详解
2020/01/16 Python
Python字符串查找基本操作代码案例
2020/10/27 Python
python实现数学模型(插值、拟合和微分方程)
2020/11/13 Python
整理HTML5移动端开发的常用触摸事件
2016/04/15 HTML / CSS
美国最顶级的精品店之一:Hampden Clothing
2016/12/22 全球购物
如何利用XMLHTTP检测URL及探测服务器信息
2013/11/10 面试题
yy结婚证婚词
2014/01/10 职场文书
学习方法演讲稿
2014/05/10 职场文书
第一批党的群众路线教育实践活动总结报告
2014/07/03 职场文书
群众路线教育实践活动方案
2014/10/31 职场文书
2015年公务员转正工作总结
2015/04/24 职场文书
MySQL GRANT用户授权的实现
2021/06/18 MySQL
解决linux下redis数据库overcommit_memory问题
2022/02/24 Redis