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实现统计代码行数的方法
May 22 Python
python用reduce和map把字符串转为数字的方法
Dec 19 Python
python数据清洗系列之字符串处理详解
Feb 12 Python
Python单例模式实例详解
Mar 01 Python
socket + select 完成伪并发操作的实例
Aug 15 Python
python实现自动发送报警监控邮件
Jun 21 Python
python中ASCII码字符与int之间的转换方法
Jul 09 Python
opencv python 图像轮廓/检测轮廓/绘制轮廓的方法
Jul 03 Python
pytorch多进程加速及代码优化方法
Aug 19 Python
解决python彩色螺旋线绘制引发的问题
Nov 23 Python
python 线性回归分析模型检验标准--拟合优度详解
Feb 24 Python
TensorFlow使用Graph的基本操作的实现
Apr 22 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的魔术方法__get()和__set()使用介绍
2012/09/19 PHP
PHP中实现crontab代码分享
2015/03/26 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
2016/07/13 PHP
ExtJs中gridpanel分组后组名排序实例代码
2013/12/02 Javascript
IE中的File域无法清空使用jQuery重设File域
2014/04/24 Javascript
鼠标悬浮停留三秒后自动显示大图js代码
2014/09/09 Javascript
javascript实现炫酷的拖动分页
2015/05/11 Javascript
Ajax中解析Json的两种方法对比分析
2015/06/25 Javascript
jQuery Easyui学习之datagrid 动态添加、移除editor
2016/01/27 Javascript
JQUERY的AJAX请求缓存里的数据问题处理
2016/02/23 Javascript
jQuery使用经验小技巧(推荐)
2016/05/31 Javascript
JS实现旋转木马式图片轮播效果
2017/01/18 Javascript
微信小程序实战之自定义抽屉菜单(7)
2017/04/18 Javascript
jquery ui sortable拖拽后保存位置
2017/04/27 jQuery
解决vuecli3.0热更新失效的问题
2018/09/19 Javascript
vue2.0结合Element-ui实战案例
2019/03/06 Javascript
vue下canvas裁剪图片实例讲解
2020/04/16 Javascript
基于VUE实现简单的学生信息管理系统
2021/01/13 Vue.js
[41:17]完美世界DOTA2联赛PWL S3 access vs CPG 第二场 12.13
2020/12/17 DOTA
python使用Berkeley DB数据库实例
2014/09/26 Python
零基础写python爬虫之爬虫编写全记录
2014/11/06 Python
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
2017/02/14 Python
ubuntu中配置pyqt4环境教程
2017/12/27 Python
django开发post接口简单案例,获取参数值的方法
2018/12/11 Python
python django 原生sql 获取数据的例子
2019/08/14 Python
如何用OpenCV -python3实现视频物体追踪
2019/12/04 Python
python对XML文件的操作实现代码
2020/03/27 Python
JupyterNotebook 输出窗口的显示效果调整方法
2020/04/13 Python
详解HTML5 Canvas标签及基本使用
2020/01/10 HTML / CSS
西班牙灯具网上商店:Lampara.es
2018/06/05 全球购物
违反工作纪律检讨书
2014/02/15 职场文书
《乞巧》教学反思
2014/02/27 职场文书
气象学专业个人求职信
2014/04/22 职场文书
2014年药房工作总结
2014/11/22 职场文书
2016中秋晚会开幕词
2016/03/03 职场文书
Golang 实现获取当前函数名称和文件行号等操作
2021/05/08 Golang