python tkinter写图形界面
来源:互联网 发布:最新windows系统 编辑:程序博客网 时间:2024/06/06 02:43
用python tkinter模块做了一个小demo,页面上设置4个按钮,每个按钮点击会有流水的滴答声,每个按钮调用相应的方法,在此点击按钮后调用的方法仅为显示一个消息弹窗,显示图片的按钮打开文件对话框,可选择文件。
实现的最终效果如下图
运行环境:Windows +python2.7
下面以每个模块做具体说明
一. 选择图片
- 主要为了打开文件对话框
- 可多选,可单选, 多选 ctrl 按钮+鼠标点击选择
- 选择一张图片后会显示图片的路径url
def picSelect(self): self.set_button_sound() #设置按钮点击效果,点击后播放2秒声音mp3文件 default_dir = r"C:\Users\lenovon\Desktop" # 设置默认打开目录 fns = tkFileDialog.askopenfilenames(filetypes=[("all", "*.*"), ("text file", "*.txt")], title=u"选择图片", initialdir=(os.path.expanduser(default_dir))) fns_list = list(fns) #将选中的所有图片url转换成list格式 print "fns list:", fns_list
二.为你写诗,查看
- 两个按钮点击后都调用了 tkMessageBox.showinfo方法,点击后弹出消息框,简单显示信息
tkMessageBox.showinfo('Message', '查看')
三.按钮设置
以选择图片的按钮为例说明
button = Button(app, text=button_texts[index],font=('方正舒体', 25),bd=0, bg='white', command=button_functions[index]) button.pack() button.grid(row=0, column=column_index, sticky='n')
1.Button()函数
- text - 按钮上显示的文字
- font - 按钮上显示文字的字体,windows下有方正舒体,可以直接用,如果是linux系统,则需要安装字体
- bd - 设置Button的边框大小;bd(bordwidth)缺省为1或2个像素
- bg - 背景颜色,因为画面颜色是白色,所以按钮的颜色也设置成了白色
2. grid布局函数
grid有两个最为重要的参数,用来指定将组件放置到什么位置,一个是row,另一个是column。如果不指定row,会将组件放置到第一个可用的行上,sticky,按钮对齐方向,sticky = 'n',指定对齐方向为向上。
四.音乐播放
也可以用其他方法播放音乐,这里使用pygame 播放音乐
def set_button_sound(self): water_drop_pwd = r"G:\water_drop.mp3" #音乐文件所在路径 pygame.mixer.init() #初始化 pygame.mixer.music.load(water_drop_pwd) pygame.mixer.music.play() #开始播放 time.sleep(2.5) #设置播放时间为2.5秒 pygame.mixer.music.stop() #停止
五.源代码
# -*- coding: utf-8 -*-import tkFileDialogimport tkMessageBoxfrom Tkinter import *import pygamefrom PIL import ImageTk, Imageimport timeimport osclass create_UI(): def __init__(self): pass def create_button(self, app): button_functions = [self.picSelect, self.writePoet, self.showPoet, quit] button_texts = ['选\n择\n图\n片', '为\n你\n写\n诗', '查\n看', '退\n出'] column_index = 3 button_num = len(button_functions) for index in range(button_num): button = Button(app, text=button_texts[index],font=('方正舒体', 25),bd=0, bg='white', command=button_functions[index]) button.grid(row=0, column=column_index, sticky='n') column_index += 1 def ui(self): app = Tk() app.title("为你写诗") app.resizable(0,0) #禁止调整窗口大小 image = Image.open(r'G:\img4.gif') background_image = ImageTk.PhotoImage(image) w = background_image.width() h = background_image.height() app.geometry('%dx%d+0+0' % (w, h)) background_label = Label(app, image=background_image) background_label.place(x=0, y=0, relwidth=1, relheight=1) self.create_button(app) app.mainloop() def set_button_sound(self): water_drop_pwd = r"G:water_drop.mp3" pygame.mixer.init() pygame.mixer.music.load(water_drop_pwd) pygame.mixer.music.play() time.sleep(2.5) pygame.mixer.music.stop() def picSelect(self): self.set_button_sound() default_dir = r"C:\Users\lenovon\Desktop" # 设置默认打开目录 fns = tkFileDialog.askopenfilenames(filetypes=[("all", "*.*"), ("text file", "*.txt")], title=u"选择图片", initialdir=(os.path.expanduser(default_dir))) fns_list = list(fns) print "fns list:", fns_list def writePoet(self): self.set_button_sound() tkMessageBox.showinfo('Message', '查看') def showPoet(self): self.set_button_sound() tkMessageBox.showinfo('Message', '展示结果')if __name__ == "__main__": demo = create_UI() demo.ui()
阅读全文
0 0
- python tkinter写图形界面
- Python 图形界面 GUI Tkinter 实例
- Python 图形界面 Tkinter 实现倒计时
- Python 图形界面Tkinter Label 详解
- Python图形界面编程---Tkinter模块基础
- Python图形界面编程---Tkinter模块使用
- Python 定时自动关机附带Tkinter图形界面GUI
- Python 基于Tkinter的GUI图形界面学习
- python图形界面GUI编程之tkinter布局
- Python Tkinter Hello,Tkinter
- Python使用EasyGui写图形界面程序
- 用aardio给python写个图形界面
- 用aardio给python写个图形界面
- 用aardio给python写个图形界面
- python tkinter
- python:Tkinter
- Python Tkinter
- 用python Tkinter写的XML-RPC客户端
- java菱形
- Android Appcation生命周期
- 为什么要做 Word Embedding
- HTML之鼠标滚动事件
- 九九乘法表
- python tkinter写图形界面
- HDU 1072-Nightmare
- 每周LeetCode算法题(四):Merge k Sorted Lists
- 第四周项目二建设单链表算法库
- pandas的简单应用与数据导入
- Java数组的复制Arrays.copyOf()、System.arraycopy()、nums.clone()
- 【求最小割边集】UVA
- mysql出现ERROR : (2006, 'MySQL server has gone away') 原因和解决方案
- STM32F4-Discovery资料汇总及stm32库函数开发指南 stm32F407版