【发布时间】:2019-01-17 21:48:42
【问题描述】:
我是 tkinter 的新手,对 python 也很陌生,所以我决定使用 tkinter 构建一个“合成器”作为练习。到目前为止它正在工作,但我无法弄清楚如何让键盘看起来像一个真正的钢琴键盘,即缺少黑键。有没有办法在 tkinter 中塑造按钮,这样我就可以挤压黑色 键之间的键,或者可能将黑键覆盖在白键之上?
到目前为止我的代码:
from tkinter import *
from functools import partial
import pygame
pygame.mixer.init()
#directory name where sounds are
direc='/Users/nol975/Desktop/tiny-piano00/Piano-'
listofnames=['A4','A5','D#4','D#5','C1','F#5','C3','C4','C5','C6','F#4']
listofkeys=[direc+x+'.wav' for x in listofnames]
def clicked(a):
(pygame.mixer.Sound(listofkeys[a]).play())
#**********GUI**********
root=Tk()
root.title('My cool synth')
#keyboard
synthframe=Frame(root).pack(side= BOTTOM, anchor='n')
for i in range(len(listofnames)):
Button(synthframe,text=listofnames[i], command=partial(clicked,i)).pack(side=LEFT, fill=BOTH, expand=1)
#Menu bar on top
menu = Menu(root)
root.config(menu=menu)
submenu = Menu(menu)
menu.add_cascade(label='File', menu=submenu)
submenu.add_command(label='Quit', command=root.destroy)
root.mainloop()
另外,如果我的代码到目前为止是草率的,我将不胜感激更正/反馈
【问题讨论】:
-
你不需要
global listofname。listofname已经是全局的,所以这完全没用。listofkeys也是如此。 -
要在其他按钮上定位按钮,请查看
place几何管理器。
标签: python python-3.x button tkinter