我正在TKinter
Ubuntu上编写一个Python程序来导入和打印Text
widget中特定文件夹中的文件名.它只是将文件名添加到Text
窗口小部件中的先前电影名称,但我想首先清除它,然后添加一个新的文件名列表.但我正在努力清除Text
小部件以前的文件名列表.
有人可以解释如何清除Text
小部件吗?
屏幕截图和编码如下:
import os
from Tkinter import *
def viewFile():
path = os.path.expanduser("~/python")
for f in os.listdir(path):
tex.insert(END, f + "\n")
if __name__ == '__main__':
root = Tk()
step= root.attributes('-fullscreen', True)
step = LabelFrame(root, text="FILE MANAGER", font="Arial 20 bold italic")
step.grid(row=0, columnspan=7, sticky='W', padx=100, pady=5, ipadx=130, ipady=25)
Button(step, text="File View", font="Arial 8 bold italic", activebackground=
"turquoise", width=30, height=5, command=viewFile).grid(row=1, column=2)
Button(step, text="Quit", font="Arial 8 bold italic", activebackground=
"turquoise", width=20, …
Run Code Online (Sandbox Code Playgroud) 每次将一个角色输入一个Text
小部件时,我想获取该小部件的内容并从某个数字中减去它的长度(基本上是"你有x个字符剩下的"交易).
但StringVar()
总是落后于一件事.这是我收集的内容,因为在将字符输入到Text小部件之前处理了该事件.这意味着如果我在该字段中有3个字符并且我输入第4个,StringVar
则更新但仍然是3个字符长,然后当我输入第5个字符时它更新为4.
有没有办法让两者保持一致?
这是一些代码.我删除了不相关的部分.
def __init__(self, master):
self.char_count = StringVar()
self.char_count.set("140 chars left")
self.post_tweet = Text(self.master)
self.post_tweet.bind("<Key>", self.count)
self.post_tweet.grid(...)
self.char_count = Label(self.master, textvariable=self.foo)
self.char_count.grid(...)
def count(self):
self.x = len(self.post_tweet.get(1.0, END))
self.char_count.set(str(140 - self.x))
Run Code Online (Sandbox Code Playgroud) 如何将 tkinter 文本小部件的一部分标记为只读?也就是说,我希望能够只允许在小部件的某些部分进行编辑。例如,我想只允许在提示之后而不是之前进行编辑,以模拟控制台。
我试图undo
在我的文本小部件上使用函数,tkinter
但没有任何运气.我这样试过:
from Tkinter import *
from ttk import Notebook
def OnVsb(*args):
text.yview(*args)
numbers.yview(*args)
def OnMouseWheel(event):
text.yview("scroll", event.delta,"units")
numbers.yview("scroll",event.delta,"units")
return "break"
def undo(*argv):
text.edit_undo()
root = Tk()
defaultbg = root.cget('bg')
root.bind('<Control-z>', undo)
note = Notebook(root)
frame = Frame(note, bd=5, relief=GROOVE, padx=5, pady=5)
frame.pack()
bar = Scrollbar(frame, command=OnVsb)
bar.pack(side=RIGHT, fill=Y)
numbers = Listbox(frame, width=5, height=30,bg=defaultbg,relief=FLAT, yscrollcommand=bar.set)
numbers.pack(side=LEFT, fill=Y)
text = Text(frame,bd=3, width=145, height=30, yscrollcommand=bar.set)
text.pack(side=LEFT, fill=Y)
text.bind("<MouseWheel>", OnMouseWheel)
text.tag_config("attr", foreground="tomato")
text.tag_config("value", foreground="dark violet")
text.tag_config("tags", foreground="dodger blue")
text.tag_config("text", font=("Georgia", …
Run Code Online (Sandbox Code Playgroud) 典型的纺车我正在 Python tKinter 中制作纺车。通常,当您旋转轮子时,您会落在轮子上的一个随机切片上,其中随机选择是切片上显示的文本。我找不到在切片上旋转文本的方法。
我试图在 中使用角度选项create_text function
,只有它围绕圆心旋转文本:
for x in range(len(spinList)):
color = "#"+("%06x"%random.randint(0,16777215))
c.create_arc(xy, start=90+((360/size)*x), extent=(360/size), fill=color, outline='black', width=2)
c.create_text(200, 200, text=spinList[x], angle=90+((180/size)*x))
Run Code Online (Sandbox Code Playgroud)
我想要的预期结果是在纺车的每个单独切片上显示的文本,而是围绕中点旋转。有没有办法不让这种情况发生?
所以,目标很简单,将一堆文本包装在一个容器中。\n为此,我遵循了Flutter 包装文本,但是创建的新行与前一行之间的空间太大。
\n我的 Container() 和 Text() 代码:
\n description == ""\n ? SizedBox.shrink()\n : Container(\n padding: const EdgeInsets.symmetric(horizontal: 10.0),\n //width: MediaQuery.of(context).size.width * 0.8,\n child: Column(\n mainAxisAlignment: MainAxisAlignment.start,\n children: [\n new Text(\n description,\n textAlign: TextAlign.left,\n style: TextStyle(fontSize: 18),\n ),\n ],\n ),\n )\n
Run Code Online (Sandbox Code Playgroud)\n小提示:如果对父小部件有任何描述,我只是使用 SizeBox.shrink() 作为“空小部件”。
\n当前情况如何,空间太大:
\n\n应该如何:
\n\n我知道 1\xc2\xba 图像更大,但这不是行间距更大的原因
\n我想知道是否可以移动到tkinter中文本小部件中的特定位置.我在文本小部件中实现了搜索,并希望实现"next"和"previous"方法,以便我的搜索在文本小部件中移动.有可能吗?谢谢你的帮助.
这是我的方法的代码:
def find():
xml.tag_delete("search")
xml.tag_configure("search", background="green")
start="1.0"
if len(fi.get()) > 0:
xml.mark_set("insert", xml.search(fi.get(), start))
while True:
pos = xml.search(fi.get(), start, END)
if pos == "":
break
start = pos + "+%dc" % len(fi.get())
xml.tag_add("search", pos, "%s + %dc" % (pos,len(fi.get())))
Run Code Online (Sandbox Code Playgroud)
fi
是搜索模式的输入字段.xml
是一个文本字段.
什么是StrutStyle
在颤振Text
部件?我读过这个文件,但我无法理解的意义,特别是height
,leading
和fontSize
参数。
我的答案如下。
我有一个带有文本小部件的tkinter
应用程序python3
,我插入了文本.我想在与前一个插入相同的行上添加插入的文本,如下所示:
from tkinter import *
class App :
def __init__(self):
sys.stdout.write = self.print_redirect
self.root = Tk()
self.root.geometry("900x600")
self.mainframe = Text(self.root, bg='black', fg='white')
self.mainframe.grid(column=0, row=0, sticky=(N,W,E,S))
# Set the frame background, font color, and size of the text window
self.mainframe.grid(column=0, row=0, sticky=(N,W,E,S))
print( 'Hello: ' )
print( 'World!' )
def print_redirect(self, inputStr):
# add the text to the window widget
self.mainframe.insert(END, inputStr, None)
# automtically scroll to the end of the mainframe window
self.mainframe.see(END)
a = App() …
Run Code Online (Sandbox Code Playgroud) 如何自动调整文本小部件的大小以适应文本小部件的高度
\n
文本小部件不会有任何om,而是文本将环绕(整个单词)并继续向下。wrap=WORD
这怎么能做到?
我接近问题陈述的想法:我想知道是否可以在每次文本环绕在文本小部件中时进行计数,并通过该给定值以某种方式计算文本小部件的高度?- 只是一个想法.. 我不知道这是否可能。
**为什么这不是重复的**
这不是重复的,如果您认为是重复的,请链接到您声称它是重复的问题。他们都实施了一个解决方案,在该解决方案中,它在文本小部件的每次击键中检查 '\n'。我的文本小部件中根本没有任何 '\n'。而是将这些词环绕起来!
这不是我正在寻找的解决方案,因为它正在寻找 '\n' 并根据找到的高度相应地更改高度。由于我不会使用任何 '\n' 而是将单词环绕在 ( Text(frame, wrap=WORDS)
)周围,所以不会出现 '\n' 使该解决方案无用!”
这就是为什么这个代码,从人们声称这是重复的问题,不会解决这个问题,这不是重复的。
不会解决我的问题,因为它寻找 '\n':
import Tkinter
class TkExample(Tkinter.Frame):
def __init__(self, parent):
Tkinter.Frame.__init__(self, parent)
self.init_ui()
def init_ui(self):
self.pack()
text_box = Tkinter.Text(self)
text_box.pack()
text_box.bind("<Key>", self.update_size)
def update_size(self, event):
widget_width = 0
widget_height = float(event.widget.index(Tkinter.END))
for line in event.widget.get("1.0", Tkinter.END).split("\n"):
if len(line) > widget_width:
widget_width = len(line)+1
event.widget.config(width=widget_width, height=widget_height)
if __name__ == '__main__':
root = Tkinter.Tk()
TkExample(root)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
编辑示例
这就是我不使用消息小部件的原因,它们不会重新排列文本以填写文本小部件。
text-widget ×10
python ×8
tkinter ×8
text ×3
flutter ×2
python-2.7 ×2
dart ×1
geometry ×1
python-2.x ×1
python-3.x ×1