您现在的位置是:主页 > news > 不会代码可以做网站维护吗/常见的网络营销方式有哪些

不会代码可以做网站维护吗/常见的网络营销方式有哪些

admin2025/4/28 22:54:44news

简介不会代码可以做网站维护吗,常见的网络营销方式有哪些,网站移动窗口代码,响应式 购物网站模板首先说,这个现象是正常的,原因是Windows的事件循环。关于更多Windows事件循环的知识点可以查阅相关资料。Windows系统上每一个按钮都对应一个按钮事件,也就是你的testbuttoncommand这个回调函数,在点击按钮时,Windows系…

不会代码可以做网站维护吗,常见的网络营销方式有哪些,网站移动窗口代码,响应式 购物网站模板首先说,这个现象是正常的,原因是Windows的事件循环。关于更多Windows事件循环的知识点可以查阅相关资料。Windows系统上每一个按钮都对应一个按钮事件,也就是你的testbuttoncommand这个回调函数,在点击按钮时,Windows系…

首先说,这个现象是正常的,原因是Windows的事件循环。关于更多Windows事件循环的知识点可以查阅相关资料。

Windows系统上每一个按钮都对应一个按钮事件,也就是你的testbuttoncommand这个回调函数,在点击按钮时,Windows系统就会生成一个点击事件,放到事件循环的待处理队列中,然后交由事件循环去依次去处理队列中的事件,处理的过程中系统会自动调用这个回调函数。

一般来说,事件循环上的回调函数时不允许做耗时操作的,耗时操作需要放到其他线程中去。

你在回调函数中调用了os.system这个函数,os.system会通过cmd的方式启动test2.py,此时新打开的notepad++是cmd的子进程,在cmd的子进程不退出的情况下,os.system函数是不会返回的,所以此时回调函数就会被阻塞在这里了。

在回调函数不返回的情况下,你会发现界面也会卡住,因为在处理按钮事件时事件循环被阻塞了,导致事件循环无法正常处理其他事件了,所以界面也不会响应我们对他所做的任何操作,包括但不限于拖动,点击退出按钮,最大化等等。

所以说如果需要耗时操作的话,可以在回调函数中新开线程,来处理耗时操作。

附上新开线程的参考方法,我尽量以最小改动的方式来修改,但是这样实现不是特别优雅。

还是需要根据你的需要进行具体的修改。

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

import threading

import tkinter

import os

test1 = tkinter.Tk()

def testbuttoncommand():

threading.Thread(target=lambda: os.system("test2.py"), args=()).start()

testbutton = tkinter.Button(text="testbutton", command=testbuttoncommand)

testbutton.place(x=1, y=1)

test1.mainloop()