pyqt5 qthread終止線程 如何使用python3.5.2 pyqt5編寫(xiě)無(wú)阻塞多線程GUI?
如何使用python3.5.2 pyqt5編寫(xiě)無(wú)阻塞多線程GUI?沒(méi)有人回答這么長(zhǎng)的問(wèn)題,因?yàn)槲覜](méi)有用py,沒(méi)有好的答案。我通常用C和QT。如果項(xiàng)目很簡(jiǎn)單,我就把它放在主循環(huán)中。如果它很復(fù)雜,我通常使
如何使用python3.5.2 pyqt5編寫(xiě)無(wú)阻塞多線程GUI?
沒(méi)有人回答這么長(zhǎng)的問(wèn)題,因?yàn)槲覜](méi)有用py,沒(méi)有好的答案。我通常用C和QT。如果項(xiàng)目很簡(jiǎn)單,我就把它放在主循環(huán)中。如果它很復(fù)雜,我通常使用boost庫(kù)打開(kāi)另一個(gè)線程以在另一個(gè)循環(huán)中接收消息。我不知道怎么寫(xiě)py,但應(yīng)該是一樣的。我想知道為什么它被封鎖了?我覺(jué)得代碼有問(wèn)題
在使用pyqt做GUI之前,對(duì)于長(zhǎng)時(shí)間運(yùn)行的任務(wù),它會(huì)被阻塞。當(dāng)時(shí)我用的是多線程,也就是用線程模塊來(lái)解決
以前我用的是pyqt for GUI,長(zhǎng)時(shí)間任務(wù)會(huì)被阻塞。我使用多線程來(lái)解決它,這是通過(guò)使用線程模塊來(lái)解決的。
如何使用python3.5.2 pyqt5編寫(xiě)無(wú)阻塞多線程GUI?
我認(rèn)為主要有兩個(gè)原因。
首先,國(guó)外關(guān)于Tkinter的專著基本沒(méi)有(目測(cè)只有一本“Python和Tkinter編程”),所以國(guó)內(nèi)關(guān)于Tkinter的專著不多。你知道原因。沒(méi)有中國(guó)材料,使用的人就不多了。
Tkinter相關(guān)知識(shí)只能從python幫助文檔中獲得。遺憾的是,中文官方幫助文檔中對(duì)Tkinter的介紹并不完全是中文的,這阻礙了程序員學(xué)習(xí)Tkinter的熱情。
基于以上原因,Tkinter基本上是在中文書(shū)的末尾介紹的,篇幅一般不超過(guò)10頁(yè)。許多書(shū)一下子就介紹出來(lái)了。你在網(wǎng)上看到的課程基本上都標(biāo)著“簡(jiǎn)明”。或外文網(wǎng)站翻譯教程。按照自媒體的規(guī)則,這屬于“運(yùn)輸”,而不是“創(chuàng)意”。
其次,與其他兩個(gè)競(jìng)爭(zhēng)對(duì)手相比,Tkinter的功能有點(diǎn)單薄,界面也沒(méi)有華麗的效果,可以說(shuō)是“樸素的外表”,喜歡它的人一定要欣賞它的內(nèi)在美。而且它沒(méi)有圖形界面設(shè)計(jì)工具,這足以阻擋大量的人。
如何使用python3.5.2 pyqt5編寫(xiě)無(wú)阻塞多線程GUI?
但我認(rèn)為主要的問(wèn)題可能是用戶需要定期重畫(huà)。有時(shí)界面會(huì)阻塞或不刷新,這與QT的重繪機(jī)制有關(guān)。另外,這個(gè)問(wèn)題很奇怪。Pyqt只是一個(gè)圖書(shū)館。多線程是CPP和python的產(chǎn)物。最好弄清楚你想用多線程做什么