第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何擺脫“無法釋放顏色圖,仍然選擇調(diào)色板”錯誤?

如何擺脫“無法釋放顏色圖,仍然選擇調(diào)色板”錯誤?

猛跑小豬 2021-10-10 14:29:29
我一直在處理顏色漸變的python腳本中的錯誤,但是在關(guān)閉python控制臺時出現(xiàn)了這個模糊的錯誤,它說:Unable to free colormap, pallette is still selected然后,我收到一個彈出窗口,說“Python 已停止響應(yīng)”。我認(rèn)為這意味著它崩潰了,但我不知道。我不知道為什么會這樣,但到目前為止似乎是隨機(jī)的。過去,我嘗試了許多不同版本的 if 語句、數(shù)學(xué)和執(zhí)行,但沒有任何解決方法。import turtle, random, osturtle.colormode(255)turtle.bgcolor(0, 0, 0)curX = 0curY = 0curZ = 0while True:    x = random.randint(0, 255)    y = random.randint(0, 255)    z = random.randint(0, 255)    success = False    XD = 0    YD = 0    ZD = 0    while success == False:        if curX < x:            curX = curX + 1        elif curX > x:            curX = curX - 1        if curY < y:            curY = curY + 1        elif curY > y:            curY = curY - 1        if curZ < z:            curZ = curZ + 1        elif curZ > z:            curZ = curZ - 1        turtle.bgcolor(curX, curY, curZ)        os.system("cls")        print(x),        print(y),        print(z)        print(curX),        print(curY),        print(curZ)        if curX == x:            print("X")            XD = 1        if curY == y:            print("Y")            YD = 1        if curZ == z:            print("Z")            ZD = 1        if XD + YD + ZD == 3:            success = True當(dāng)我關(guān)閉程序時,我希望它在 100% 的情況下不會出現(xiàn)任何錯誤,但時不時地會拋出“無法釋放顏色圖,仍然選擇調(diào)色板”錯誤。
查看完整描述

1 回答

?
繁星coding

TA貢獻(xiàn)1797條經(jīng)驗 獲得超4個贊

在事件驅(qū)動的環(huán)境中,我們不能簡單地做while True:并期望事情有效。這樣做有效地阻止了一些事件的觸發(fā)。窗口關(guān)閉事件可能很棘手——比烏龜有時能夠處理的更棘手,所以我們可能需要下降到 tkinter 級別才能正確執(zhí)行。


下面是我重新編寫的代碼,以使用計時器事件替換無限循環(huán),并使用窗口關(guān)閉處理程序來捕獲窗口關(guān)閉事件。處理程序嘗試干凈地停止您的內(nèi)部循環(huán)和計時器事件,然后完成關(guān)閉窗口。加上一些其他的風(fēng)格變化:


from turtle import Screen

from random import randint

from os import system


screen = Screen()

screen.colormode(255)

screen.bgcolor(0, 0, 0)


curR = 0

curG = 0

curB = 0


running = True


def window_closing():

    global running

    running = False

    screen.ontimer(screen.bye, 500)


def switch_color_target():

    global curR, curG, curB


    r = randint(0, 255)

    g = randint(0, 255)

    b = randint(0, 255)


    success = False


    RD = False

    GD = False

    BD = False


    while running and not success:

        if curR < r:

            curR += 1

        elif curR > r:

            curR -= 1

        else:

            RD = True


        if curG < g:

            curG += 1

        elif curG > g:

            curG -= 1

        else:

            GD = True


        if curB < b:

            curB += 1

        elif curB > b:

            curB -= 1

        else:

            BD = True


        screen.bgcolor(curR, curG, curB)


        system("cls")


        print(r)

        print(g)

        print(b)


        success = RD and GD and BD


        if success:

            print("R")

            print("B")

            print("G")

        else:

            print(curR)

            print(curG)

            print(curB)


    if running:

        screen.ontimer(switch_color_target, 250)


switch_color_target()


canvas = screen.getcanvas()

root = canvas.winfo_toplevel()

root.protocol("WM_DELETE_WINDOW", window_closing)


screen.mainloop()

我和你使用的操作系統(tǒng)不同,所以我不能徹底測試這個——試一試看看它是否能解決你的問題。


查看完整回答
反對 回復(fù) 2021-10-10
  • 1 回答
  • 0 關(guān)注
  • 178 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號