[閒聊] Python大師救我

看板Marginalman作者 (甚麼都不想做的凱瑞)時間3年前 (2022/12/27 14:50), 3年前編輯推噓3(3011)
留言14則, 5人參與, 3年前最新討論串1/2 (看更多)
現在卡在無法把訊息傳回去UI的textbrowser裡 我的程式流程圖 https://imgur.com/AT3Aeuq.jpg
UI介面圖 https://imgur.com/Z2zivsF.jpg
底下那塊文字框就是textbrowser(命名是state_table) 我的程式碼 controller.py https://pastebin.com/Wery9e5c scrape_shopee_controller.py https://pastebin.com/kct8ja17 scrape_ui.py https://pastebin.com/2dapeipP scrape_ui.py中的disply_text(text)會把收到的值傳到state_table裡 在scrape_shopee_controller.py裡的每個def中的這個 self.ui.disply_text('獲取連結中')會負責把裡面的文字訊息傳過去 目前問題卡在我在scrape_ui裡onButtonClick中的 self.display_text('開始執行蝦皮爬蟲')是可以成功出現在textbrowser https://imgur.com/hlWvTFR.jpg
但是我在scrape_shopee_controller裡的各個def 它們的self.display_text('xxxx')不會出現在textbrowser 可是display_text是有吃到那些值 https://imgur.com/XULgBqM.jpg
要怎麼樣才能讓文字成功顯示在textbrowser? 有沒有python大師可以救救我 1000P -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 120.110.113.182 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1672123814.A.426.html

12/27 14:51, 3年前 , 1F
樓下大師
12/27 14:51, 1F

12/27 14:54, 3年前 , 2F
非同步?
12/27 14:54, 2F

12/27 14:57, 3年前 , 3F
雖然我沒碰過python,但是會不會是沒放到主執行緒處
12/27 14:57, 3F

12/27 14:57, 3年前 , 4F
理?
12/27 14:57, 4F

12/27 14:57, 3年前 , 5F
所以UI沒更新
12/27 14:57, 5F
我有把scrape另外開執行緒去跑 剛剛也試過把display_text也加上多執行緒結果還是一樣沒顯示出來 不過我的多執行緒是放在controller的shopee_control裡 會不會也要在scrape_shopee_controller裡面也都放一個?

12/27 15:02, 3年前 , 6F
那把資料透過socket丟到scrape_ui再show呢
12/27 15:02, 6F

12/27 15:03, 3年前 , 7F
你不同執行緒的程式 可以直接去修改ui的那個執行緒嗎
12/27 15:03, 7F
我剛試多開一個執行緒去執行display_text這個函式,但還是沒反應 也試過在scrape_controller用多執行緒的方式來執行每個函式

12/27 15:18, 3年前 , 8F
是不是單字拼錯 display 變disply
12/27 15:18, 8F
沒關係,pycharm按tag可以直接跳函式名稱引用

12/27 17:07, 3年前 , 9F
請問初始化的時候,可不可以加一行 self.state_table.setText
12/27 17:07, 9F

12/27 17:07, 3年前 , 10F
("")給他,讓他有空字串可以append
12/27 17:07, 10F
可以,不過不影響結果 依舊是沒辦法顯示在state_table上 ※ 編輯: kerycheng (120.110.113.182 臺灣), 12/27/2022 17:30:03

12/28 13:56, 3年前 , 11F
如果是用 pyqtSignal 下去處理,不知道算不算符合
12/28 13:56, 11F

12/28 13:56, 3年前 , 12F

12/28 13:57, 3年前 , 13F

12/28 13:57, 3年前 , 14F
文章代碼(AID): #1ZgfMcGc (Marginalman)
文章代碼(AID): #1ZgfMcGc (Marginalman)