#Python3中tkinter编程中Text.delete

Python3中tkinter编程中Text.delete详解

    def delete(self, index1, index2=None):
        """Delete the characters between INDEX1 and INDEX2 (not included)."""
        self.tk.call(self._w, 'delete', index1, index2)

text.delete(index1, index2)
index1, index2 必须为 n.n的形式,n.n 表示第n行的第n个下标,不然会报错。列如(1.2 ,2.4)
而且 index1 要小于 index2

##清除调用者text中的内容,防止下一次判断的时候重复打印上次的内容

##0.0代表的是小标为第0行的第0个元素,后面的tkinter.END表示末尾,

##delete(index1, index2=None)表示从删除index1到index2的元素,但不包括index2,

##而且,文本框中index1实际是从1.0 开始的,( 0.n 来说是比文本内容还要上一行,超过文本框或者文本框开头)
##比如(0.1,1.0)就没有效果,因为不包括index2,取不到index2

##必须打(0.1,2.0),删除第一行的内容,因为0.1相当于1.0

##而(1.2,1.4)则为删除第一行从下标2开始, 到下标为4的元素之前

这里插入GIF图

点击多选框后执行 text.delete(index1, index2),删除文本内容,防止内容重复
调节(index1, index2)来确定删除的内容
在这里插入图片描述
这里就直接用我一篇文章中的多选框的内容来解释,下面 text.delete(1.0,tkinter.END) 进行测试

import tkinter

win = tkinter.Tk()          #创建主窗口
win.title("小姐姐")        #设置窗口标题
win.geometry("160x200+400+200")              #设置大小和位置 前面为 长x宽 中间为小写x
                                            #后面的参数为距离屏幕的左边边框400,距离上边框200
"""
CheckButton:多选框控件
thinter.CheckButton
"""
def updata():       #点击多选框判断选择了谁,
    mssage = ""     #定义一个空的str字符串
    if hobby1.get()== True:    #当hobby1选项框的选中,则mssage变量加上字符串"money\n" 并换行
        mssage += "money\n"+"money\n"+"money\n"
    if hobby2.get()== True:
        mssage += "power\n"
    if hobby3.get()== True:
        mssage += "people\n"


    text.delete(1.0,tkinter.END)     #清除调用者text中的内容,防止下一次判断的时候重复打印上次的内容
                             #0.0代表的是小标为第0行的第0个元素,后面的tkinter.END表示末尾,
                             # delete(index1, index2=None)表示从删除index1到index2的元素,但不包括index2,
                             #注意这里index1, index2必须为浮点数  n.n 表示第n行的第n个下标,
                             #而且,文本框中index1实际是从1.0 开始的,( 0.n 来说是比文本内容还要上一行,超过文本框或者文本框开头)
                             #比如(0.1,1.0)就没有效果,因为不包括index2,取不到index2
                             #必须打(0.1,2.0),删除第一行的内容,因为0.1相当于1.0
                             #而(1.2,1.4)则为删除第一行从下标2开始, 到下标为4的元素之前




    text.insert(tkinter.INSERT,mssage) #将mssage的内容传给下文的text文本框
hobby1 = tkinter.BooleanVar()       #定义变量hobby1(布尔类型的变量,只会返回True和False),
hobby2 = tkinter.BooleanVar()       #用来给多选框绑定变量,让计算机知道我们选择的哪一个内容
hobby3 = tkinter.BooleanVar()       #相当于css里面的<input type="checkbox"  checked=""/>
                                    # checked设置或返回 checkbox 是否应被选中。
check1 = tkinter.Checkbutton(win,text="money",variable= hobby1,command = updata)
                                    #tkinter.Checkbutton创建名为check1的复选框
check2 = tkinter.Checkbutton(win,text="power",variable= hobby2,command = updata)
                                    #command当选择框点击的时候,执行update函数
check3 = tkinter.Checkbutton(win,text="people",variable= hobby3,command = updata)
                                    #variable= hobby3 将这个复选框绑定一个名为hobby3的布尔变量(variable)



text = tkinter.Text(win,width=50,height=5)      #设置用来接收上文的updata()函数的返回值


check1.pack()
check2.pack()
check3.pack()
text.pack()
win.mainloop()      # mainloop则是主窗口的成员函数,也就是让这个窗口工作起来,
                        # 并接收鼠标的和键盘的操作

  • 8
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,以下是一个简单的 Python 绘图程序的代码,使用了 tkinter 库: ``` import tkinter as tk class PaintApp: def __init__(self, master): self.master = master self.master.title("Python 绘图程序") self.master.geometry("800x600") # 创建画布 self.canvas = tk.Canvas(self.master, bg="white", width=600, height=400) self.canvas.pack(side=tk.LEFT, fill=tk.BOTH, expand=True) # 创建工具栏 self.toolbar = tk.Frame(self.master) self.toolbar.pack(side=tk.RIGHT, fill=tk.Y) self.pen_btn = tk.Button(self.toolbar, text="画笔") self.pen_btn.pack(side=tk.TOP) self.line_btn = tk.Button(self.toolbar, text="直线") self.line_btn.pack(side=tk.TOP) self.rect_btn = tk.Button(self.toolbar, text="矩形") self.rect_btn.pack(side=tk.TOP) self.oval_btn = tk.Button(self.toolbar, text="椭圆") self.oval_btn.pack(side=tk.TOP) self.clear_btn = tk.Button(self.toolbar, text="清除") self.clear_btn.pack(side=tk.TOP) # 设置默认工具 self.current_tool = "pen" # 绑定事件 self.canvas.bind("<B1-Motion>", self.draw) self.pen_btn.config(command=lambda: self.set_tool("pen")) self.line_btn.config(command=lambda: self.set_tool("line")) self.rect_btn.config(command=lambda: self.set_tool("rect")) self.oval_btn.config(command=lambda: self.set_tool("oval")) self.clear_btn.config(command=self.clear) def draw(self, event): if self.current_tool == "pen": self.canvas.create_oval(event.x, event.y, event.x+5, event.y+5, fill="black") elif self.current_tool == "line": self.canvas.create_line(event.x, event.y, event.x+10, event.y+10, fill="black") elif self.current_tool == "rect": self.canvas.create_rectangle(event.x, event.y, event.x+20, event.y+20, fill="black") elif self.current_tool == "oval": self.canvas.create_oval(event.x, event.y, event.x+30, event.y+15, fill="black") def set_tool(self, tool): self.current_tool = tool def clear(self): self.canvas.delete("all") if __name__ == "__main__": root = tk.Tk() app = PaintApp(root) root.mainloop() ``` 这个程序创建了一个窗口,左侧是画布,右侧是工具栏,可以选择不同的工具进行绘画,支持画笔、直线、矩形、椭圆等基本绘图功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值