会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 133675个问题
JAVA 全系列/第一阶段:AI驱动的JAVA编程/变量、数据类型、运算符 22996楼
JAVA 全系列/第十八阶段:亿级高并发电商项目_架构/编码(旧)/电商:基于SpringSecurity实现后台登录功能 22997楼

老师你好,按照代码打后,画不出直线是怎么回事

"""开发画图软件的菜单
"""

from tkinter.filedialog import *
from tkinter.colorchooser import *

#窗口的宽度和高度
win_width=900
win_height=450

class Application(Frame):

    def __init__(self,master=None,bgcolor="#000000"):
        super().__init__(master)
        self.master=master
        self.bgcolor=bgcolor
        self.x=0
        self.y=0
        self.fgcolor="#ff0000"
        self.pack()
        self.createWidget()

    def createWidget(self):
        drawpad= Canvas(root,width=win_width,height=win_height*0.8,bg=self.bgcolor)
        drawpad.pack()

        #创建按钮
        btn_start = Button(root,text="开始",name="start")
        btn_start.pack(side="left",padx="10")
        btn_pen = Button(root, text="画笔", name="pen")
        btn_pen.pack(side="left",padx="10")
        btn_rect = Button(root, text="矩形", name="rect")
        btn_rect.pack(side="left", padx="10")
        btn_clear= Button(root, text="清屏", name="clear")
        btn_clear.pack(side="left", padx="10")
        btn_erasor = Button(root, text="橡皮擦", name="erasor")
        btn_erasor.pack(side="left", padx="10")
        btn_line = Button(root, text="直线", name="line")
        btn_line.pack(side="left", padx="10")
        btn_lineArrow = Button(root, text="箭头直线", name="lineArrow")
        btn_lineArrow.pack(side="left", padx="10")
        btn_color = Button(root, text="颜色", name="color")
        btn_color.pack(side="left", padx="10")

        btn_pen.bind_class("Button","<1>",self.eventManager)

    def eventManager(self,event):
        name = event.widget.winfo_name()
        print(name)
        if name=="line":
            self.drawpad.bind("B1-Motion>".self.myline)

    def myline(self,event):

        self.drawpad.create_line(self.x,self.y,event.x,event.y,fill=self.fgcolor)

if __name__=='__main__':
    root=Tk()
    root.geometry(str(win_width)+"x"+str(win_height)+"+200+300")
    root.title("百战程序员的画图软件")
    app=Application(master=root)
    root.mainloop()

图片如下

image.png

Python 全系列/第二阶段:Python 深入与提高/GUI编程(隐藏) 22999楼
Python 全系列/第一阶段:Python入门/控制语句 23000楼
Python 全系列/第二阶段:Python 深入与提高/GUI编程(隐藏) 23002楼

shop.zip

老师,这里面有两个导入的错误,但我都是按照课程导入的,怎么会出错呢

Python 全系列/第九阶段:Flask百战电商后台系统/Flask百战电商后台项目 23003楼

1.用的老师源码,报错。我用的是tomcat9

Connected to server

[2021-04-06 09:37:13,595] Artifact rbacdemo:war exploded: Artifact is being deployed, please wait...

06-Apr-2021 21:37:15.654 信息 [RMI TCP Connection(3)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。

log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).

log4j:WARN Please initialize the log4j system properly.

log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

06-Apr-2021 21:37:18.114 严重 [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal 一个或多个listeners启动失败,更多详细信息查看对应的容器日志文件

06-Apr-2021 21:37:18.115 严重 [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal 由于之前的错误,Context[]启动失败

06-Apr-2021 21:37:18.130 警告 [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc Web应用程序 [ROOT] 注册了JDBC驱动程序 [com.mysql.jdbc.Driver],但在Web应用程序停止时无法注销它。 为防止内存泄漏,JDBC驱动程序已被强制取消注册。

[2021-04-06 09:37:18,142] Artifact rbacdemo:war exploded: Error during artifact deployment. See server log for details.

06-Apr-2021 21:37:23.416 信息 [Catalina-utility-1] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [D:\apache-tomcat-9.0.34\webapps\manager]

06-Apr-2021 21:37:23.503 信息 [Catalina-utility-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [D:\apache-tomcat-9.0.34\webapps\manager] has finished in [87] ms


2.源码

rbacdemo.rar


JAVA 全系列/第六阶段:项目管理与SSM框架/RBAC实战 23004楼
Python 全系列/第一阶段:Python入门/Python入门(动画版) 23005楼
JAVA 全系列/第九阶段:Spring Boot实战/Spring Boot 23006楼
Python 全系列/第八阶段:轻量级Web开发利器-Flask框架/Flask视图高级 23007楼
JAVA 全系列/第四阶段:数据库与AI协同技术实战/Oracle 数据库的使用 23008楼

class Node():
    def __init__(self, prev = None, next = None, value = None):
        self.value = value
        self.prev = prev
        self.next = next
    def __str__(self):
        return f'Node:{self.value}'

class DoubleLinkList():
    def __init__(self):
        self.root = Node()  # 初始化root节点
        self.end = None  # 最后一个节点
        self.size = 0  # 链式结构的长度

    def append(self, value):
        node = Node(value)  # 实例化node  封装节点对象
        # 判断是否含有元素
        if not self.end:  # 如果没有数据
            self.root.next = node  # 将root的下一个节点设置为新的node节点
            node.prev = self.root  # 设置新的节点的 上一个节点为root节点
        else:
            self.end.next = node  # 将原来最后一个节点的下一个节点设置为 node节点
            node.prev = self.end  # 设置新节点的上一个节点为原来的最后一个节点 
        self.end = node   # 更新最后一个节点为新加的 node节点
        self.size += 1  # 更新链式结构大小

    def append_first(self, value):
        node = Node(value)
        if not self.end:
            self.end = node
        else:
            temp = self.root.next
            node.next = temp
            temp.prev = node
        node.prev = self.root  # 将node的前一个节点设置为根节点        
        self.root.next = node  # 将root的下一个节点设置为新的node节点
        self.size += 1  # 更新链式结构大小
    def __iter__(self):
        current = self.root.next
        if current:
            while current is not self.end:
                yield current.value
                current = current.next
            yield current.value

    def revers_iter(self):
        current = self.end  # 获取最后一个节点
        if current:
            while current is not self.root:
                yield current
                current = current.prev





if __name__ == '__main__':
    dlink = DoubleLinkList()
    dlink.append('孙悟空')
    dlink.append('唐僧')
    dlink.append('猪八戒')
    dlink.append('孙悟空')

    for i in dlink:
        print(i)
    print('------逆向遍历----')
    for i in dlink.revers_iter():
        print(i)

错误:

image.png

老师,我检查了好几遍也没找出来是哪里出错了 为什么显示的都是None?

Python 全系列/第十七阶段:数据结构与算法/算法与数据结构(旧) 23009楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

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