当我单击按钮时,我想要在我的较低的tk帧中显示的信息将出现在空闲shell中。我希望有人能告诉我如何解决?(我删除了我的api细节)
import tkinter as tk
from tkinter import *
from PIL import ImageTk
from coinbase.wallet.client import Client
import json
client = Client(api_key, api_secret)
total = 0
message = []
accounts = client.get_accounts()
for wallet in accounts.data:
message.append( str(wallet['name']) + ' ' + str(wallet['native_balance']) )
value = str( wallet['native_balance']).replace('USD','')
total += float(value)
message.append( 'Total Balance: ' + 'USD ' + str(total) )
root = tk.Tk()
canvas = Canvas(width = 444, height = 444, bg = 'gray24')
canvas.pack(expand = YES, fill = BOTH)
image = ImageTk.PhotoImage(file = "/Users/dusty/Pictures/Background.jpg")
canvas.create_image(0, 0, image = image, anchor = NW)
frame = tk.Frame(root, bg='gray24', bd=5)
frame.place(relx=0.5, rely=0.1, relwidth=0.5, relheight=0.1, anchor='n')
button = tk.Button(frame, text="go", font=40, command=lambda: print('\n'.join( message )))
button.place(relx=0.7, relheight=1, relwidth=0.3)
entry = tk.Entry(frame, font=40)
entry.place(relwidth=0.65, relheight=1)
lower_frame = tk.Frame(root, bg='gray24', bd=10)
lower_frame.place(relx=0.5, rely=0.3, relwidth=0.5, relheight=0.5, anchor='n')
mainloop()
问题来源StackOverflow 地址:/questions/59387120/print-message-in-lower-tk-frame
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在你的代码中,你希望在点击按钮后将信息显示在下方的lower_frame
中。为了实现这个功能,你可以使用Text
或者Label
控件来展示信息。这里我将向你展示如何使用Text
控件来动态显示消息。
首先,在你的lower_frame
里添加一个Text
控件,并设置一些基本属性,比如字体大小和背景颜色。然后,定义一个新的函数(例如show_message
),该函数将在按钮被点击时调用,用于清空并更新Text
控件的内容。
修改后的代码如下:
import tkinter as tk
from tkinter import *
from PIL import ImageTk
from coinbase.wallet.client import Client
import json
# ... 你的其他导入和初始化代码 ...
def show_message():
# 清空text_widget的内容
text_widget.delete(1.0, tk.END)
# 将message列表中的内容逐行插入到Text控件中
for line in message:
text_widget.insert(tk.END, line + "\n")
root = tk.Tk()
canvas = Canvas(width = 444, height = 444, bg = 'gray24')
canvas.pack(expand = YES, fill = BOTH)
image = ImageTk.PhotoImage(file = "/Users/dusty/Pictures/Background.jpg")
canvas.create_image(0, 0, image = image, anchor = NW)
frame = tk.Frame(root, bg='gray24', bd=5)
frame.place(relx=0.5, rely=0.1, relwidth=0.5, relheight=0.1, anchor='n')
button = tk.Button(frame, text="go", font=40, command=show_message)
button.place(relx=0.7, relheight=1, relwidth=0.3)
entry = tk.Entry(frame, font=40)
entry.place(relwidth=0.65, relheight=1)
lower_frame = tk.Frame(root, bg='gray24', bd=10)
lower_frame.place(relx=0.5, rely=0.3, relwidth=0.5, relheight=0.5, anchor='n')
# 在lower_frame中添加Text控件
text_widget = tk.Text(lower_frame, wrap=tk.WORD, font=("Helvetica", 16), bg='gray24', fg='white')
text_widget.pack(fill=tk.BOTH, expand=True)
mainloop()
这段代码中,我们创建了一个名为text_widget
的Text
控件,并将其放置在lower_frame
中。当用户点击"Go"按钮时,show_message
函数会被调用,它会清除text_widget
中的现有文本,然后将message
列表中的所有消息逐行插入到text_widget
中。这样,每次点击按钮,lower_frame
中的内容就会更新为最新的消息列表。