如何在a文件中创建tkinter窗口,按钮运作B文件,把B文件产生的变量实时在a文件的tkinter窗口显示?

行者刘6 2018-12-05 03:26:58


from tkinter import *

class demo():
def __init__(self):
root=Tk()
text=Text(height=20, width=50)
text.pack()
text.insert(END,'test')
Button(text='按钮',command=self.B).pack()
mainloop()

def B(self):
from scrapy import cmdline
cmdline.execute("scrapy crawl ceshi".split())

a=demo()

实际上我是想按下按钮,然后运行scrapy,然后spider 返回的item在tkinter的窗口上实时插入
...全文
213 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
陈年椰子 2018-12-06
  • 打赏
  • 举报
回复
有新意! tk还能这么传给class text
学习了!
行者刘6 2018-12-06
  • 打赏
  • 举报
回复
算是搞懂tkinter 了,如果调用另外一个文件的类,可以这么搞

a文件运行,调用B文件的类:
from tkinter import *
import common
class demo():
def __init__(self,root):
self.root=root
self.text=Text(self.root,height=20, width=50)
self.text.pack()
self.text.insert(END,'test')
Button(text='按钮',command=self.do).pack()
#mainloop()
def do(self):
common.text(self).do()

root = Tk()
tk=demo(root)

mainloop()



B文件,被调用里面的类的方法:
from tkinter import *
import time
class text():
def __init__(self,tk):
self.tk=tk
def do(self):
for i in range(20):
self.tk.text.insert(END,str(i)+'\n')
time.sleep(0.1)
self.tk.text.update()
陈年椰子 2018-12-05
  • 打赏
  • 举报
回复
a 文件用定时刷新, tk 没怎么用过, wxpython 是消息机制(Publisher)。
a 里建立线程 , 调用b ,得到的信息提交给定时刷新模块。

大概是这样。

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧