我刚接触编码,只是学习Python.我搜索了答案但找不到答案.
我正在尝试制作一个用于学习目的的计算器,但我无法进行底部keyboard frame扩展,或者buttons内部扩展以匹配根窗口的边界
这是我的代码:
from tkinter import *
# main window configuration
root=Tk()
root.geometry("1000x1000")
root.grid_columnconfigure(0, weight=1)
root.grid_rowconfigure(0, weight=1)
# main window frames
topmenu=Frame(root,padx=5,pady=5)
display=Frame(root,padx=5,pady=5)
keyboard=Frame(root,padx=5,pady=5,bg="red")
topmenu.grid(row=0,column=0)
display.grid(row=1,column=0)
keyboard.grid(row=2,column=0)
# topmenu widgets
# display widgets
#keyboard widgets
# prima riga
percentagebutton=Button(keyboard,padx=5,pady=5,text="%")
squarerootbutton=Button(keyboard,padx=5,pady=5,text="?x")
squarebutton=Button(keyboard,padx=5,pady=5,text="x²")
inversebutton=Button(keyboard,padx=5,pady=5,text="1/x")
percentagebutton.grid(row=0,column=0,sticky='EWNS')
squarerootbutton.grid(row=0,column=1,sticky='EWNS')
squarebutton.grid(row=0,column=2,sticky='EWNS')
inversebutton.grid(row=0,column=3,sticky='EWNS')
# seconda riga
resetbutton=Button(keyboard,padx=5,pady=5,text="C")
deletebutton=Button(keyboard,padx=5,pady=5,text="?")
divisionbutton=Button(keyboard,padx=5,pady=5,text="÷")
resetbutton.grid(row=1,column=0,columnspan=2,sticky='EWNS')
deletebutton.grid(row=1,column=2,sticky='EWNS')
divisionbutton.grid(row=1,column=3,sticky='EWNS')
# terza riga
sevenbutton=Button(keyboard,padx=5,pady=5,text="7")
eightbutton=Button(keyboard,padx=5,pady=5,text="8")
ninebutton=Button(keyboard,padx=5,pady=5,text="9")
moltiplicationbutton=Button(keyboard,padx=5,pady=5,text="X")
sevenbutton.grid(row=2,column=0,sticky='EWNS')
eightbutton.grid(row=2,column=1,sticky='EWNS')
ninebutton.grid(row=2,column=2,sticky='EWNS')
moltiplicationbutton.grid(row=2,column=3,sticky='EWNS')
# quarta riga
fourbutton=Button(keyboard,padx=5,pady=5,text="4")
fivebutton=Button(keyboard,padx=5,pady=5,text="5")
sixbutton=Button(keyboard,padx=5,pady=5,text="6")
minusbutton=Button(keyboard,padx=5,pady=5,text="-")
fourbutton.grid(row=3,column=0,sticky='EWNS')
fivebutton.grid(row=3,column=1,sticky='EWNS') …Run Code Online (Sandbox Code Playgroud) 我使用了 Tkinter ,有几个顶级,它们在 Ubuntu 任务栏中单独显示,而不是像打开多个 Firefox 窗口那样一起出现(我的意思是它们都在 Firefox 图标下组合在一起,可以从中选择所需的)。所有 tkinter 窗口都单独出现在任务栏中,因此占用了任务栏中的大量空间。有没有办法将它们分组在一起,以便很容易看到当前打开了多少个窗口,并清楚地看到它们是其中的一部分一个程序
我正在使用python中的tkinter库来开发键盘应用程序。我做了一个键盘。我要突出显示一个键,然后单击箭头键,然后更改该突出显示的键。这是我的键盘代码。
from tkinter import *
import tkinter
Keyboard_App = tkinter.Tk()
def select(value):
if value == "<-":
input = entry.get("1.0", 'end-2c')
entry.delete("1.0", END)
entry.insert("1.0", input, END)
elif value == " Space ":
entry.insert(tkinter.END, ' ')
elif value == "Tab":
entry.insert(tkinter.END, ' ')
else:
entry.insert(tkinter.END, value)
buttons = [
'1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '=',
'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', '<-',
'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', ';', '"', …Run Code Online (Sandbox Code Playgroud) 有谁知道在 tkinter 笔记本中选择不同选项卡后如何触发功能?
这就是我要完成的任务。
假设我有两个选项卡,tab1 和 tab2:
if tab1 is selected:
canvas3.unbind_all()
canvas2.bind_all('<MouseWheel>', lambda event: canvas2.yview_scroll(int(-1 * (event.delta / 120)),"units"))
elif tab 2 is selected:
canvas2.unbind_all()
canvas3.bind_all('<MouseWheel>', lambda event: canvas3.yview_scroll(int(-1 * (event.delta / 120)), "units"))
Run Code Online (Sandbox Code Playgroud) 我创建了一个框架,因为我有两个浏览按钮,我想浏览两个以“.txt”扩展名结尾的文件并将其打印在屏幕上。
在我的场景中,浏览功能在按下框架上的按钮之前被调用。我期待它应该在我按下按钮时调用。附上完整代码。请有人纠正我我做错了什么。
from Tkinter import *
import tkFileDialog as filedialog
global filename
root = Tk()
def browsefunc(entry):
entry = filedialog.askopenfilename(filetypes=[("Text files","*.txt")])
print entry
browsebutton1 = Button(root, text="Browsefile1", command=browsefunc("TXT_file1"))
browsebutton1.pack()
browsebutton2 = Button(root, text="Browsefile2", command=browsefunc("TXT_file2"))
browsebutton2.pack()
root.mainloop()
Run Code Online (Sandbox Code Playgroud) 我想制作一个可滚动框架,填充应用程序窗口中的整个单元格。当调整窗口大小时,框架中的小部件应保持居中。由于框架不可滚动,我使用画布并在其窗口中放置了一个框架。滚动区域与框架相关联。但是我无法使框架扩展并填充整个画布区域。
我尝试在画布中为具有整个画布宽度的框架创建一个窗口,并将窗口宽度的变化与画布配置事件相关联。不过我得到了有线结果。该框架仅占据窗口的右侧部分。当我展开窗口时,它会向左移动。我将画布涂成黄色,将框架涂成绿色,以使事物可见。谢谢你的帮助!
import tkinter as tk
class FrameWithScrollBar(tk.Frame):
def __init__(self, parent, *args, **kwargs):
super().__init__(parent, *args, **kwargs)
self.canvas = tk.Canvas(self, bg='yellow')
self.frame = tk.Frame(self.canvas, bg='green')
self.scrollbar = tk.Scrollbar(self, orient='vertical',
command=self.canvas.yview)
self.canvas.configure(yscrollcommand=self.scrollbar.set)
self.canvas.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
self.scrollbar.pack(side=tk.RIGHT, fill=tk.BOTH)
self.frame.pack(fill=tk.BOTH, expand=True)
self._frame_id = self.canvas.create_window(
self.canvas.winfo_reqwidth(), 0,
anchor='n',
window=self.frame)
self.frame.bind('<Configure>', self.onFrameConfigure)
self.canvas.bind('<Configure>', self.onCanvasConfigure)
def onFrameConfigure(self, event):
self.canvas.configure(scrollregion=self.frame.bbox('all'))
def onCanvasConfigure(self, event):
width = event.width
self.canvas.itemconfigure(self._frame_id, width=width)
if __name__ == '__main__':
root = tk.Tk()
fws = FrameWithScrollBar(root)
buttons = list()
for i in range(5):
for j in …Run Code Online (Sandbox Code Playgroud) 我正在尝试更改mac(catalina)上tkinter 按钮的背景颜色,但它没有获得彩色背景,而是在布局中显示空白。
我使用的按钮代码:
button_open = Button(root, width=45, bg="#82CC6C", fg="black", text="OPEN",
highlightbackground="#82CC6C", highlightthickness=1,
borderwidth=0.2, relief="groove", padx=0, pady=0)
button_open.grid()
Run Code Online (Sandbox Code Playgroud)
我得到的结果:
我所期望的:
我尝试更改所有参数,但总是给出相同的结果,
我们该如何解决这个问题?这只是 mac 上 tkinter 的错误吗?
我一直在从一本电子书中学习 Python。现在我正在学习这个Tkinter模块
这本书建议运行以下代码。但是,它不能正常工作。任何想法为什么?
from Tkinter import *
window = Tk()
window.geometry("200x200")
my_frame = Frame()
my_frame.pack
button1 = Button(my_frame, text = "I am at (100x150)")
button1.place(x=100, y=150)
button2 = Button(my_frame, text = "I am at (0 x 0)")
button2.place(x=0, y=0, width=100, height=50)
window.mainloop()
Run Code Online (Sandbox Code Playgroud)
我应该得到什么:

我得到的:

添加button1.pack()and 后button2.pack(),我得到了这个:

我真的很沮丧,试图在 tkinter 中对齐标签和输入按钮。我想创建一个如下所示的 GUI
上面的页面是使用页面工具开发的。我编写了一段代码来获取相同类型的页面,但它有很多错位。
from Tkinter import *
root = Tk()
root.title("Nokia Performance")
root.geometry("583x591+468+158")
root.title("NOKIA _ANSI Performance")
root.configure(borderwidth="1")
root.configure(relief="sunken")
root.configure(background="#dbd8d7")
root.configure(cursor="arrow")
root.configure(highlightbackground="#d9d9d9")
root.configure(highlightcolor="black")
Label1 = Label(root)
_img1 = PhotoImage(file="C:\\Users\\vkandhav\\Desktop\\PY_IMAGE\\NOKIA.gif")
Label1.configure(image=_img1)
Label1.configure(text='''Label''')
Label1.pack()
Label2 = Label(root)
Label2.configure(text='''Enter the platform :''')
Label2.pack(side=LEFT)
Entry2 = Entry(root)
Entry2.pack(side = RIGHT)
Label3 = Label(root)
Label3.configure(text='''Device IP Address :''')
Label3.pack()
Entry5 = Entry(root)
Entry5.pack()
Label5 = Label(root)
Label5.configure(text='''Username :''')
Label5.pack()
Label6 = Label(root)
Label6.configure(text='''Label''')
Label6.pack()
Label7 = Label(root)
Label7.configure(text='''Craft IP :''')
Label7.pack()
Label8 = Label(root) …Run Code Online (Sandbox Code Playgroud) 嘿,我希望你们一切都好。我正在 python tkinter 中构建一个视力表软件,其中包含 Opto Charts。在光学图表中,所有字母都直接位于彼此下方。但是当我尝试在 tkinter 中添加标签时,它形成 V 形,因为每行字体大小都在减小。我想占据标签所有可用空间。
我设法使用它来做到这一点 mainFrame.rowconfigure(0, weight=1),但它只能使标签达到全宽,而不是其中的文本。我已附上屏幕截图以了解其外观。
在屏幕截图中,您可以看到标签设置为屏幕的全长,但文本呈 V 形,因为字体大小从上到下减小。有没有办法将文本锚定为全宽。换句话说,每个字母表都应该直接位于上面的字母表之下。
我希望我已经说清楚了,如果您需要了解其他信息,请告诉我。
python ×11
tkinter ×11
tkinter-layout ×11
python-3.x ×3
macos ×1
python-2.7 ×1
taskbar ×1
tkinter-text ×1