搜索

首先GUI中不同函数的局部变量的问题,我发现不同button定义的函数得到的变量无法通用。可以通过global 函数内的变量可以解决这个问题。

def openfiles2():
    global s2fname
    s2fname = filedialog.askopenfilename(title='打开S2文件', filetypes=[('S2out', '*.out'), ('All Files', '*')])
    text.insert(tkinter.END, 'S2打开成功\n'+s2fname+'\n')
def openfilecgns():
    global cgnsfname
    cgnsfname = filedialog.askopenfilename(title='打开CGNS文件',filetypes=[('CGNSdat', '*.dat'), ('All Files', '*')] )
    text.insert(tkinter.END, 'CGNS dat 打开成功\n'+cgnsfname+'\n')
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 * 虽然更危险,但是网上大部分的代码都是这样导出的。更容易参考。

实时更新并查看:

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

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

用update可以解决这个问题。

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

python tkinter

版权属于:guoxiaorui
作品采用:本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
0
查看目录

目录

来自 《Python GUI中 text框里实时输出(仿控制台同步输出)》
评论

博主很懒,啥都没有
© 2021 程序猿小睿