Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 特金特';函数的作用是截断标签的第一个字母_Python_User Interface_Tkinter - Fatal编程技术网

Python 特金特';函数的作用是截断标签的第一个字母

Python 特金特';函数的作用是截断标签的第一个字母,python,user-interface,tkinter,Python,User Interface,Tkinter,上面发生的事情的图像: 第二个输出是实际的预期结果。两者放置相同,但使用不同的函数进行处理 第一个(问题)的位置如下: gui=gui(Tk()) 类ModifiedPrint: 定义初始化(自): self.old=sys.stdout def写入(自身、文本): sys.stdout=self.old 标签(gui.root,text=text,fg='white',bg='black').place(x=0,y=gui.Space-30) sys.stdout=self def冲洗(自)

上面发生的事情的图像:

第二个输出是实际的预期结果。两者放置相同,但使用不同的函数进行处理

第一个(问题)的位置如下:

gui=gui(Tk())
类ModifiedPrint:
定义初始化(自):
self.old=sys.stdout
def写入(自身、文本):
sys.stdout=self.old
标签(gui.root,text=text,fg='white',bg='black').place(x=0,y=gui.Space-30)
sys.stdout=self
def冲洗(自):
self.old.flush()
sys.stdout=ModifiedPrint()
gui.root.mainloop()
而第二个
标签(self.root,text=eval(cmd),fg='white',bg='black').place(x=x,y=y)

从我的研究来看,这不是一个价值问题,而是一个其他的问题。我试着把它放在很远的地方,但它仍然被切断。除了添加空格(如“”+文本)不会改变任何内容外,h(第一个字母)仍然被截断


整个代码:

函数被调用两次,第二次总是“\n”

这是输入print hello后发生的情况:

['h','e','l','l','o']
['\n']
我通过检查函数是第一次调用还是第二次调用来修复它

class ModifiedPrint:
定义初始化(自):
self.runs=0
self.old=sys.stdout
def写入(自身、文本):
self.runs+=1
如果self.runs%2==0:返回
self.runs=1
标签(gui.root,text=text,fg='white',bg='black').place(x=0,y=gui.Space-30)
def冲洗(自):
self.old.flush()

而不是
.place
使用
.pack
会更容易。请阅读
place
命令中的
anchor
选项。虽然
place
可能不是这里的正确选择。与其让
self.runs
作为
int
运行,
bool
不是更好吗?您可以使用
self.runs=not self.runs