Python GUI中 text框里实时输出

首先GUI中不同函数的局部变量的问题。

发现不同button定义的函数得到的变量无法通用。

通过global 函数内的变量可以解决这个问题

 

1 def openfiles2():
2     global s2fname
3     s2fname = filedialog.askopenfilename(title='打开S2文件', filetypes=[('S2out', '*.out'), ('All Files', '*')])
4     text.insert(tkinter.END, 'S2打开成功\n'+s2fname+'\n')  
5 def openfilecgns():
6     global cgnsfname
7     cgnsfname = filedialog.askopenfilename(title='打开CGNS文件',filetypes=[('CGNSdat', '*.dat'), ('All Files', '*')] )
8     text.insert(tkinter.END, 'CGNS dat 打开成功\n'+cgnsfname+'\n')  
9 def show():

-Text文本框的定义和输出

定义:

text=tkinter.Text(root,width=20,height=20)
text.pack(fill=tkinter.X,side=tkinter.BOTTOM  )

用到fill 可以填充某个方向,这次填充X方向,使得界面更好看。 side可以放置在不同的位置。但是这次用起来很多错误。

以后可以尝试不用import tkinter 可以用from tkinter  import * 虽然更危险,但是网上大部分的代码都是这样导出的。更容易参考。

实时更新并查看:

1         text.insert(tkinter.END, 'this Row finished...\n')  # INSERT表示在光标位置插入
2         text.see(tkinter.END)
3 
4         text.update()

如果不update就是 等到计算函数计算完之后才可以得到新的insert的数据。

用update可以解决这个问题。

利用see(END)  解决文本框滚动的问题。自动显示最新的一行信息。类似于各种商业软件求解器。

 

转载于:https://www.cnblogs.com/anloveslife/p/7541898.html

Python,创建GUI(图形用户界面)并输出学生信息通常会用到像Tkinter、PyQt、wxPython等库。这里我们以Tkinter为例,展示如何创建一个简单的窗口,显示学生的基本信息。 首先,你需要安装`tkinter`模块,如果尚未安装,可以通过pip安装: ```bash pip install tkinter ``` 然后,你可以编写一个Python脚本来创建GUI,并定义一个学生类存储学生的属性: ```python import tkinter as tk class Student: def __init__(self, name, age, grade): self.name = name self.age = age self.grade = grade class GUIApp: def __init__(self, root): # 创建窗口和输入框 self.root = root self.root.title("学生信息展示") self.name_label = tk.Label(root, text="姓名:") self.name_entry = tk.Entry(root) self.age_label = tk.Label(root, text="年龄:") self.age_entry = tk.Entry(root) self.grade_label = tk.Label(root, text="年级:") self.grade_entry = tk.Entry(root) # 添加按钮来获取并显示学生信息 self.show_info_button = tk.Button(root, text="显示学生信息", command=self.show_student_info) self.name_label.grid(row=0, column=0) self.name_entry.grid(row=0, column=1) self.age_label.grid(row=1, column=0) self.age_entry.grid(row=1, column=1) self.grade_label.grid(row=2, column=0) self.grade_entry.grid(row=2, column=1) self.show_info_button.grid(row=3, column=1) def show_student_info(self): name = self.name_entry.get() age = int(self.age_entry.get()) grade = self.grade_entry.get() student = Student(name, age, grade) print(f"学生姓名:{student.name}, 年龄:{student.age}, 年级:{student.grade}") # 初始化主窗口 root = tk.Tk() app = GUIApp(root) root.mainloop() ``` 在这个例子,当你在输入框填写学生的姓名、年龄和年级后,点击“显示学生信息”按钮,控制台会打印出对应的学生信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值