尝试使用“打开文件”按钮制作 GUI。当我运行下面显示的代码时,打开文件对话框会立即打开,而不是在我按下按钮时打开。为什么?有没有一种不涉及使用类的简单方法来解决这个问题?(我目前对课程一无所知,正在做一个时间紧迫的项目)
from tkinter import *
interface = Tk()
def openfile():
return filedialog.askopenfilename()
button = ttk.Button(interface, text = "Open", command = openfile())
button.grid(column = 1, row = 1)
interface.mainloop()
Run Code Online (Sandbox Code Playgroud) 我正在尝试制作一个 'ttk 标签',a) 高 20 像素,宽 300 像素,b) 可滚动(在这种情况下是水平的),c)在合理范围内使用最简单的代码(除了文本和滚动条都在一个框架内*)。我发现stackoverflow有助于描述我需要经历的过程(将标签放在框架中,将框架放在画布中,将滚动条放在画布旁边或下方,并以某种方式将它们“绑定”在一起) ,但尽管看了一些文档和 stackoverflow 问题,我还是不明白为什么我的代码不能正常工作。请有人 a) 更新代码以使其满足上述条件,并且 b) 让我知道我是否做了任何不必要的事情?谢谢
*该框架将用于我的一个项目,并带有相关文本
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
myframe_outer = ttk.Frame(root)
mycanvas = tk.Canvas(myframe_outer, height=20, width=300)
myframe_inner = ttk.Frame(mycanvas)
myscroll = ttk.Scrollbar(myframe_outer, orient='horizontal', command=mycanvas.xview)
mycanvas.configure(xscrollcommand=myscroll.set)
myframe_outer.grid()
mycanvas.grid(row=1, sticky='nesw')
myscroll.grid(row=2, sticky='ew')
mycanvas.create_window(0, 0, window=myframe_inner, anchor='nw')
ttk.Label(myframe_inner, text='test ' * 30).grid(sticky='w')
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
编辑:

对于以下代码:
command = '\'{:.' + str(3) + 'f}\'.format(' + str(12.6543423) + ')'
print(command)
print('{:.3f}'.format(12.6543423))
print(exec(command))
Run Code Online (Sandbox Code Playgroud)
预期成绩:
'{:.3f}'.format(12.6543423)
12.654
12.654
Run Code Online (Sandbox Code Playgroud)
实际结果:
'{:.3f}'.format(12.6543423)
12.654
None
Run Code Online (Sandbox Code Playgroud)
请有人能告诉我我做错了什么以及如何解决它?我都在尝试编写一个数字舍入函数并尝试理解exec命令.