python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐(二)
在上一篇blog:python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐
中介绍了python中的tkinter的一些东西,你可能对tkinter有一定的了解了。这篇blog主要是介绍tkinter的对话框(Pop-up Dialog)
查看tkinter的API的时候,接口资源:
Tkinter 8.5 reference: a GUI for Python
先来看看运行的效果:
这里主要对 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 进行增加了一个菜单选项:'Test'

def help_test1():
ask = askokcancel('askokcancel messagebox','你确定要这样做吗?')
if ask:
# to do something
print('你选择的是:确定')
else:
# to do something
print('你选择的是:取消')
运行效果:

def help_test2():
ask = askquestion('askquestion messagebox', '你很喜欢那个女孩吗?')
if 'yes' == ask:
#to do something
print('是的,我很喜欢')
elif 'no' == ask:
#to do something
print('不是这样的,我不喜欢她')
运行效果:

接下来的功能差不多...
def help_test8():
'''打开文件'''
#('All files', '*')
openfilename = askopenfilename(filetypes=[('xml', '*.xml')])
try:
with open(openfilename, 'r') as fp:
for line in fp:
print(line)
fp.close()
except:
print('Could not open File:%s'%openfilename)
运行效果:

def help_test10():
'''颜色面板选择器'''
color = askcolor(title='颜色面板')
print(color)
运行效果:

=================================================================
代码部分:
=================================================================
# -*- coding: UTF-8 -*-
#python tkinter menu
#python version 3.3.2
#EN = Window 7 from tkinter import *
from tkinter.messagebox import *
from tkinter.filedialog import *
from tkinter.colorchooser import *
'''
在python 3.3.2中,tkinter模块可以创建一个窗口控件,如Java中的Swing
功能描述:
根据Python 3.3.2 IDEL的菜单,创建出一个tkinter窗口
File-Exit : 退出功能完成
Help-About IDEL : 打印相应信息
其他的菜单项,当点击时,会打印出相应菜单项的名称
''' __author__ = 'Hongten'
MENU_ITEMS = ['File', 'Edit', 'Format', 'Run', 'Options', 'Windows', 'Help', 'Test']
#菜单File中的选项
MENU_FILE_ITEMS = ['New Window Ctrl+N ',
'Open... Ctrl+O ',
'Recent Files ',
'Open Module... Alt+M ',
'Class Browser Alt+C ',
'Path Browser ',
'Save Ctrl+S ',
'Save As... Ctrl+Shift+S',
'Save Copy As... Ctrl+Alt+S ',
'Print Window Ctrl+P ',
'Close Alt+F4 ',
'Exit Ctrl+Q ']
#菜单Edit中的选项
MENU_EDIT_ITEMS = ['Undo Ctrl+Z ',
'Redo Ctrl+Shift+Z ',
'Cut Ctrl+X ',
'Copy Ctrl+C ',
'Paste Ctrl+V ',
'Select All Ctrl+A ',
'Find... Ctrl+F ',
'Find Again Ctrl+G ',
'Find Selections Ctrl+F3 ',
'Find in Files Alt+F3 ',
'Replace... Ctrl+H ',
'Go to Line Alt+G ',
'Expend Word Alt+/ ',
'Show call tip Ctrl+backslash',
'Show surerounding parens Ctrl+0 ',
'Show Completions Ctrl+space ']
#菜单Format中的选项
MENU_FORMAT_ITEMS = ['Check Module Alt+X ',
'Ident Region Ctrl+] ',
'Dedent Region Ctrl+[ ',
'Commemt Out Region Alt+3 ',
'Uncomment Region Alt+4 ',
'Tabify Region Alt+5 ',
'Untabify Region Alt+6 ',
'Toggle Tabs Alt+T ',
'New Ident Width Alt+U ',
'Format Paragraph Alt+Q ',
'Strip trailing whitespace ']
#菜单Run中的选项
MENU_RUN_ITEMS = [ 'Python Shell ',
'Check Module Alt+X ',
'Run Module F5 ']
#菜单Options中的选项
MENU_OPTIONS_ITEMS = ['Config IDEL... ',
'Code Context ']
#菜单Windows中的选项
MENU_WINDOWS_ITEMS = ['Zoom Height Alt+2 ']
#菜单Help中的选项
MENU_HELP_ITEMS = ['About IDEL ',
'IDEL Help ',
'Python Docs F1 ']
#菜单Test中的选项
MENU_TEST_ITEMS = ['about ',
'askokcancel messagebox ',
'askquestion messagebox ',
'askretrycancel messagebox ',
'askyesno messagebox ',
'showerror messagebox ',
'showinfo messagebox ',
'showwarning messagebox ',
'open file ',
'save as file ',
'colorchooser '] #help-About IDEL
ABOUT_MESSAGE = '''
Author : Hongten
Author_email : hongtenzone@foxmail.com
Blog : http://www.cnblogs.com/hongten
QQ : 648719819
Created : 2013-09-05
Version : 1.0
'''
def get_tk():
'''获取一个Tk对象'''
return Tk() def set_tk_title(tk, title):
'''给窗口定义title'''
if title is not None and title != '':
tk.title(title)
else:
tk.title('Hongten v1.0') def set_tk_geometry(tk, size):
'''设置窗口大小,size的格式为:widthxheight,如:size = '200x100'.'''
if size is not None and size != '':
tk.geometry(size)
else:
tk.geometry('670x600') def get_menu(tk):
'''获取一个菜单条'''
return Menu(tk) def menu_file(menubar):
'''定义菜单File'''
filemenu = Menu(menubar, tearoff=1)
filemenu.add_command(label=MENU_FILE_ITEMS[0], command=lambda:print(MENU_FILE_ITEMS[0]))
filemenu.add_command(label=MENU_FILE_ITEMS[1], command=lambda:print(MENU_FILE_ITEMS[1]))
filemenu.add_command(label=MENU_FILE_ITEMS[2], command=lambda:print(MENU_FILE_ITEMS[2])) filemenu.add_command(label=MENU_FILE_ITEMS[3], command=lambda:print(MENU_FILE_ITEMS[3]))
filemenu.add_command(label=MENU_FILE_ITEMS[4], command=lambda:print(MENU_FILE_ITEMS[4]))
filemenu.add_command(label=MENU_FILE_ITEMS[5], command=lambda:print(MENU_FILE_ITEMS[5]))
filemenu.add_separator()
filemenu.add_command(label=MENU_FILE_ITEMS[6], command=lambda:print(MENU_FILE_ITEMS[6]))
filemenu.add_command(label=MENU_FILE_ITEMS[7], command=lambda:print(MENU_FILE_ITEMS[7]))
filemenu.add_command(label=MENU_FILE_ITEMS[8], command=lambda:print(MENU_FILE_ITEMS[8]))
filemenu.add_separator()
filemenu.add_command(label=MENU_FILE_ITEMS[9], command=lambda:print(MENU_FILE_ITEMS[9]))
filemenu.add_separator()
filemenu.add_command(label=MENU_FILE_ITEMS[10], command=lambda:print(MENU_FILE_ITEMS[10]))
filemenu.add_command(label=MENU_FILE_ITEMS[11], command=root.destroy)
menubar.add_cascade(label=MENU_ITEMS[0], menu=filemenu) def menu_edit(menubar):
'''定义菜单Edit'''
edit_menu = Menu(menubar, tearoff=1)
edit_menu.add_command(label=MENU_EDIT_ITEMS[0], command=lambda:print(MENU_EDIT_ITEMS[0]))
edit_menu.add_command(label=MENU_EDIT_ITEMS[1], command=lambda:print(MENU_EDIT_ITEMS[1]))
edit_menu.add_separator()
edit_menu.add_command(label=MENU_EDIT_ITEMS[2], command=lambda:print(MENU_EDIT_ITEMS[2]))
edit_menu.add_command(label=MENU_EDIT_ITEMS[3], command=lambda:print(MENU_EDIT_ITEMS[3]))
edit_menu.add_command(label=MENU_EDIT_ITEMS[4], command=lambda:print(MENU_EDIT_ITEMS[4]))
edit_menu.add_command(label=MENU_EDIT_ITEMS[5], command=lambda:print(MENU_EDIT_ITEMS[5]))
edit_menu.add_separator()
edit_menu.add_command(label=MENU_EDIT_ITEMS[6], command=lambda:print(MENU_EDIT_ITEMS[6]))
edit_menu.add_command(label=MENU_EDIT_ITEMS[7], command=lambda:print(MENU_EDIT_ITEMS[7]))
edit_menu.add_command(label=MENU_EDIT_ITEMS[8], command=lambda:print(MENU_EDIT_ITEMS[8]))
edit_menu.add_command(label=MENU_EDIT_ITEMS[9], command=lambda:print(MENU_EDIT_ITEMS[9]))
edit_menu.add_command(label=MENU_EDIT_ITEMS[10], command=lambda:print(MENU_EDIT_ITEMS[10]))
edit_menu.add_command(label=MENU_EDIT_ITEMS[11], command=lambda:print(MENU_EDIT_ITEMS[11]))
edit_menu.add_command(label=MENU_EDIT_ITEMS[12], command=lambda:print(MENU_EDIT_ITEMS[12]))
edit_menu.add_command(label=MENU_EDIT_ITEMS[13], command=lambda:print(MENU_EDIT_ITEMS[13]))
edit_menu.add_command(label=MENU_EDIT_ITEMS[14], command=lambda:print(MENU_EDIT_ITEMS[14]))
edit_menu.add_command(label=MENU_EDIT_ITEMS[15], command=lambda:print(MENU_EDIT_ITEMS[15]))
menubar.add_cascade(label=MENU_ITEMS[1], menu=edit_menu) def menu_format(menubar):
'''定义菜单Format'''
format_menu = Menu(menubar, tearoff=1)
format_menu.add_command(label=MENU_FORMAT_ITEMS[0], command=lambda:print(MENU_FORMAT_ITEMS[0]))
format_menu.add_command(label=MENU_FORMAT_ITEMS[1], command=lambda:print(MENU_FORMAT_ITEMS[1]))
format_menu.add_command(label=MENU_FORMAT_ITEMS[2], command=lambda:print(MENU_FORMAT_ITEMS[2]))
format_menu.add_command(label=MENU_FORMAT_ITEMS[3], command=lambda:print(MENU_FORMAT_ITEMS[3]))
format_menu.add_command(label=MENU_FORMAT_ITEMS[4], command=lambda:print(MENU_FORMAT_ITEMS[4]))
format_menu.add_command(label=MENU_FORMAT_ITEMS[5], command=lambda:print(MENU_FORMAT_ITEMS[5]))
format_menu.add_command(label=MENU_FORMAT_ITEMS[6], command=lambda:print(MENU_FORMAT_ITEMS[6]))
format_menu.add_command(label=MENU_FORMAT_ITEMS[7], command=lambda:print(MENU_FORMAT_ITEMS[7]))
format_menu.add_command(label=MENU_FORMAT_ITEMS[8], command=lambda:print(MENU_FORMAT_ITEMS[8]))
format_menu.add_command(label=MENU_FORMAT_ITEMS[9], command=lambda:print(MENU_FORMAT_ITEMS[9]))
format_menu.add_separator()
format_menu.add_command(label=MENU_FORMAT_ITEMS[10], command=lambda:print(MENU_FORMAT_ITEMS[10]))
menubar.add_cascade(label=MENU_ITEMS[2], menu=format_menu) def menu_run(menubar):
'''定义菜单Run'''
run_menu = Menu(menubar, tearoff=1)
run_menu.add_command(label=MENU_RUN_ITEMS[0], command=lambda:print(MENU_RUN_ITEMS[0]))
run_menu.add_separator()
run_menu.add_command(label=MENU_RUN_ITEMS[1], command=lambda:print(MENU_RUN_ITEMS[1]))
run_menu.add_command(label=MENU_RUN_ITEMS[2], command=lambda:print(MENU_RUN_ITEMS[2]))
menubar.add_cascade(label=MENU_ITEMS[3], menu=run_menu) def meun_options(menubar):
'''定义菜单Options'''
options_menu = Menu(menubar, tearoff=1)
options_menu.add_command(label=MENU_OPTIONS_ITEMS[0], command=lambda:print(MENU_OPTIONS_ITEMS[0]))
options_menu.add_separator()
options_menu.add_command(label=MENU_OPTIONS_ITEMS[1], command=lambda:print(MENU_OPTIONS_ITEMS[1]))
menubar.add_cascade(label=MENU_ITEMS[4], menu=options_menu) def menu_windows(menubar):
'''定义菜单Windows'''
windows_menu = Menu(menubar, tearoff=1)
windows_menu.add_command(label=MENU_WINDOWS_ITEMS[0], command=lambda:print(MENU_WINDOWS_ITEMS[0]))
windows_menu.add_separator()
menubar.add_cascade(label=MENU_ITEMS[5], menu=windows_menu) def meun_help(menubar):
'''定义菜单Help'''
help_menu = Menu(menubar, tearoff=1)
help_menu.add_command(label=MENU_HELP_ITEMS[0], command=lambda:print(MENU_HELP_ITEMS[0]))
help_menu.add_separator()
help_menu.add_command(label=MENU_HELP_ITEMS[1], command=lambda:print(MENU_HELP_ITEMS[1]))
help_menu.add_command(label=MENU_HELP_ITEMS[2], command=lambda:print(MENU_HELP_ITEMS[2]))
menubar.add_cascade(label=MENU_ITEMS[6], menu=help_menu) def meun_test(menubar):
'''定义菜单Help'''
test_menu = Menu(menubar, tearoff=1)
test_menu.add_command(label=MENU_TEST_ITEMS[0], command=about)
test_menu.add_separator()
test_menu.add_command(label=MENU_TEST_ITEMS[1], command=help_test1)
test_menu.add_command(label=MENU_TEST_ITEMS[2], command=help_test2)
test_menu.add_command(label=MENU_TEST_ITEMS[3], command=help_test3)
test_menu.add_command(label=MENU_TEST_ITEMS[4], command=help_test4)
test_menu.add_command(label=MENU_TEST_ITEMS[5], command=help_test5)
test_menu.add_command(label=MENU_TEST_ITEMS[6], command=help_test6)
test_menu.add_command(label=MENU_TEST_ITEMS[7], command=help_test7)
test_menu.add_separator()
test_menu.add_command(label=MENU_TEST_ITEMS[8], command=help_test8)
test_menu.add_command(label=MENU_TEST_ITEMS[9], command=help_test9)
test_menu.add_separator()
test_menu.add_command(label=MENU_TEST_ITEMS[10], command=help_test10)
menubar.add_cascade(label=MENU_ITEMS[7], menu=test_menu) ############################################################
# Test Menu Items Functions
def about():
'''Help-About IDEL function'''
label = Label(root, text=ABOUT_MESSAGE, fg='red')
label.pack(side='top') def help_test1():
ask = askokcancel('askokcancel messagebox','你确定要这样做吗?')
if ask:
# to do something
print('你选择的是:确定')
else:
# to do something
print('你选择的是:取消') def help_test2():
ask = askquestion('askquestion messagebox', '你很喜欢那个女孩吗?')
if 'yes' == ask:
#to do something
print('是的,我很喜欢')
elif 'no' == ask:
#to do something
print('不是这样的,我不喜欢她') def help_test3():
ask = askretrycancel('askretrycancel messagebox', '该程序被其他程序占用,请重试..')
if ask:
#to do something
print('重试')
else:
#to do something
print('取消重试') def help_test4():
ask = askyesno('askyesno messagebox', 'Can you cut down a tree with a herrign?')
print(ask)
if 'yes' == ask:
#to do something
print('yes')
elif 'no' == ask:
#to do something
print('no') def help_test5():
error = showerror('showerror messagebox', 'ClassNotFoundException...')
if 'ok' == error:
#to do something
print('你选择的是确定...') def help_test6():
info = showinfo('showinfo messagebox', 'This is an ex-parrot')
if 'ok' == info:
#to do something
print('ok') def help_test7():
warn = showwarning('showwarning messagebox', '内存溢出...')
if 'ok' == warn:
#to do something
print('确认内存溢出...') def help_test8():
'''打开文件'''
#('All files', '*')
openfilename = askopenfilename(filetypes=[('xml', '*.xml')])
try:
with open(openfilename, 'r') as fp:
for line in fp:
print(line)
fp.close()
except:
print('Could not open File:%s'%openfilename) def help_test9():
'''打开文件'''
saveasfilename = asksaveasfilename()
print('saves', saveasfilename.encode('utf-8')) def help_test10():
'''颜色面板选择器'''
color = askcolor(title='颜色面板')
print(color) ############################################################
#init menu bar
def init_menu_bar(menubar):
'''初始化菜单条'''
menu_file(menubar) #file
menu_edit(menubar) #edit
menu_format(menubar) #format
menu_run(menubar) #run
meun_options(menubar) #options
menu_windows(menubar) #windows
meun_help(menubar) #help
meun_test(menubar) #test #获得窗口对象
root = get_tk()
#设置窗口大小
set_tk_geometry(root, '')
#设置窗口title
set_tk_title(root, 'Python 3.3.2 Shell')
#获取菜单对象
menubar = get_menu(root)
#初始化菜单
init_menu_bar(menubar)
#加载菜单配置
root.config(menu=menubar) mainloop()
python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐(二)的更多相关文章
- python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐
在了解python中的tkinter模块的时候,你需要了解一些tkinter的相关知识 下面是python的API文档中的一个简单例子: import tkinter as tk class Appl ...
- python开发_tkinter_获取文本框内容_给文本框添加键盘输入事件
在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...
- python开发_tkinter_单选菜单_不可用菜单操作
在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...
- python开发_tkinter_菜单选项中英文切换_菜单选项不可用操作_博主推荐
我使用的python版本为:3.3.2 如果你对python中tkinter模块的菜单操作不是很了解,你可以看看: python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推 ...
- python开发_tkinter_获取单选菜单值
在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...
- python开发_tkinter_多级子菜单
在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...
- python开发_tkinter_复选菜单
在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...
- firefox扩展开发(二):用XUL创建窗口控件
firefox扩展开发(二):用XUL创建窗口控件 2008-06-11 16:57 1.创建一个简单的窗口 <?xml version="1.0"?> <?xm ...
- WinForm界面开发之布局控件"WeifenLuo.WinFormsUI.Docking"的使用
WinForm界面开发之布局控件"WeifenLuo.WinFormsUI.Docking"的使用 转自:http://www.cnblogs.com/wuhuacong/arch ...
随机推荐
- JDOM生成XML文档的一般方法
由于DOM提供的生成XML的方法不够直观,而且要用到各种繁琐的注解,鉴于此可借助第三方库-----JDOM生成XML文档.具体操作方式如下: import java.io.FileOutputStre ...
- Linux多线程的使用一:互斥锁
多线程经常会在Linux的开发中用到,我想把平时的使用和思考记录下来,一是给自己做个备忘,二是分享给可能会用到的人. POSIX标准下互斥锁是pthread_mutex_t,与之相关的函数有: 1 i ...
- 从一个局长使用BS系统的无奈看测试点
今天我点名买了个B/S系统,听说只要有浏览器就能用.我最讨厌装客户端了,用浏览器就是方便啊. 下面就是我使用这个系统碰到的麻烦事: 我登录失败的时候没有任何提示,这没什么,反正提示也只是说失败…… 进 ...
- 一文看懂python主要应用领域或应用场景
Python简介 Python(英国发音:/ˈpaɪθən/美国发音:/ˈpaɪθɑːn/),是一种面向对象的解释型计算机程序设计语言,由荷兰人GuidovanRossum于1989年发明,第一个公开 ...
- 窗口启用/禁用功能函数EnableWindow的使用
在非MFC环境中如何使控件或者窗口禁用呢?起初是想通过发送消息来实现,但找来找去都木有找到控件禁用的消息(也是是博主木有找到的缘故),所以只能另辟蹊径,使用 EnableWindow这个函数, 该函数 ...
- 【笔记】jQuery插件开发指南
原文链接:http://www.cnblogs.com/Wayou/p/jquery_plugin_tutorial.html (有部分增删和修改) jQuery插件开发模式 软件开发过程中是需要一定 ...
- Oracle学习笔记:实现select top N的方法
由于Oracle不支持select top N语句,所以在Oracle中需要利用order by和rownum的组合来实现select top N的查询. rownum是记录表中数据编号的一个隐藏字段 ...
- poj 2369(置换群)
Permutations Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3041 Accepted: 1641 Desc ...
- #JS Ajax的error函数
使用jquery的ajax方法向服务器发送请求的时候,常常需要使用到error函数进行错误信息的处理, 一般error函数返回的参数有三个: function(jqXHR jqXHR, String ...
- day5模块学习--sys模块
sys模块 sys模块是处理与系统相关的模块,sys(system),下面来看看sys模块常用的方法: 1.sys.argv #命令行参数list,第一个元素是程序本身路径 2.sys ...