会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132360个问题

import random
from tkinter import *
from tkinter import messagebox
class Application(Frame):
    def __init__(self,master=None):
        super().__init__(master)
        self.master=master
        self.pack()
        self.createWidget()

    def createWidget(self):
        self.canvas=Canvas(self,width=300,height=400,bg="green") #创建组件
        self.canvas.pack()
        self.canvas.create_line(30,30,500,500) #画直线
        self.canvas.create_rectangle(20,50,80,40)
        global photo
        photo=PhotoImage(file=r"C:\Users\86137\Documents\mindplus-py\environment\Python3.6.5-64\tcl\tk8.6\images\logo64.gif")
        self.canvas.create_image(200,50,image=photo)

        Button(self,text="随机生成十个矩形",command=self.confirm).pack(side="left")

    def confirm(self):
        for x in range(0,10):
            x1 = random.randrange(int(self.canvas["width"]/2))
            y1 = random.randrange(int(self.canvas["height"] / 2))
            x2 = x1+random.randrange(int(self.canvas["width"] / 2))
            y2 = y1+random.randrange(int(self.canvas["height"] / 2))
            self.canvas.create_rectangle(x1,y1,x2,y2)


root=Tk()
root.geometry("500x600+300+300")
app=Application(master=root)
root.mainloop()

老师我这个为什么会报错?

Exception in Tkinter callback

Traceback (most recent call last):

  File "D:\python\lib\tkinter\__init__.py", line 1892, in __call__

    return self.func(*args)

  File "D:\python_exec\py02\GUI图形编程\canvas布图.py", line 24, in confirm

    x1 = random.randrange(int(self.canvas["width"]/2))

TypeError: unsupported operand type(s) for /: 'str' and 'int'


Python 全系列/第二阶段:Python 深入与提高/GUI编程(隐藏) 811楼
Python 全系列/第二阶段:Python 深入与提高/游戏开发-坦克大战 812楼

'''测试多行文本框Text'''
#coding=utf-8
from tkinter import *
import webbrowser
class Application(Frame):
    def __init__(self,master=None):
        super().__init__(master)
        self.master=master
        self.pack()
        self.creatWidget()
    def creatWidget(self):
        self.text1=Text(width=100,height=80)
        self.text1.pack()
        self.text1.insert(1.0,"小高今年要搞学习")
        self.text1.insert(2.5,"就是搞技术就完了")
        Button(self,text="重复插入规定文本",command=self.insertText).pack()
        Button(self,text="返回指定位置的文本",command=self.returnText).pack()
        Button(self,text="通过tag精确控制文本",command=self.textTag).pack()

    def insertText(self):
        self.text1.insert(INSERT,'虽然我现在才第二阶段')
        self.text1.insert(END,"但是到暑假我一定能赶到第十三阶段")
    def returnText(self):
        print(self.text1.get(1.2,1.8))
        print("所有文本内容:\n",self.text1.get(1.0,END))
    def textTag(self):
        self.text1.delete(1.0,END)
        self.text1.insert(INSERT,"好好学python,别忘了你还负债累累\n百度一下,世界如此简单")
        self.text1.tag_add("good",2.0,3.9)              #前面是标记的名字,后面是它所占的区域
        self.text1.tag_config("good",bg="yellow",fg="blue")   #给标记区域加配置以便它能更好地显现出来
        self.text1.tag_bind("good","<Button-1>",self.webshow)
    def webshow(self,event):
        webbrowser.open("http://www.baidu.com")

if __name__=='__main__':
    root=Tk()
    root.geometry("400x300+200+300")
    app=Application(master=root)
    root.mainloop()

老师,前两个按钮是好的,但是到tag那里并没有出现我设置的效果,报错,我觉得没问题呀,请您帮忙看看

Python 全系列/第二阶段:Python 深入与提高/GUI编程(隐藏) 813楼
Python 全系列/第二阶段:Python 深入与提高/GUI编程(隐藏) 815楼
Python 全系列/第二阶段:Python 深入与提高/GUI编程(隐藏) 817楼
Python 全系列/第二阶段:Python 深入与提高/GUI编程(隐藏) 818楼
Python 全系列/第二阶段:Python 深入与提高/GUI编程(隐藏) 824楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637