欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

学习笔记:python GUI——Tkinter(更新中...)

程序员文章站 2022-04-11 17:48:00
...

一、界面,逻辑分离

首先,用面向对象的方式来写界面(感觉更有条理,编写和调试方便)。最常遇到的问题就是界面和功能函数之间的(界面一个文件,功能函数一个文件)调用。调用功能函数直接导包调用就行,如果调用功能函数的变量,添加返回值。

# func.py 功能函数
def a():
    a = 1
    b = 2
    c = a + b
    print(c)
    return c

# ui.py 主界面
# 这里使用tkinter.text演示获取a()中c的值,然后插入text
    self.value = func.a()
    self.text.insert('END',self.value)

二、关于text.insert()报错问题

之前再调试的时候发现如果这样写布局,在进行插入操作的时候会出现下面的错误,百度后无果。(若不是布局问题,有可能就是比较常见的调用问题)

self.text = tkinter.Text(menu, width=10, height=15).grid(row=1, column=2)


报错:
AttributeError: 'NoneType' object has no attribute 'insert'

后来按下面这种写法(不知道什么原因,请教各位大佬),修改了text的布局,解决问题。

self.text = tkinter.Text(menu, width=10, height=15)
self.text.grid(row=1, column=2)