[問題] 使用PyQt Designer UI彈出dialog失敗(已解決)

看板Python作者 (ginnyhuang)時間11年前 (2014/03/20 18:52), 編輯推噓0(006)
留言6則, 3人參與, 最新討論串1/1
經驗: 第一次使用PyQt,主要是想寫一個input視窗,想到很久以前初學python時曾很簡單地跳出 視窗並顯示圖片(太久遠忘記怎麼做了...),因此才選用python作為視窗語言,希望能很快 做出一個input介面。 沒想到不是這麼回事Orz,輾轉多日才使用了pyqt及其內的designer,但對於視窗調用還是 不甚熟悉。手邊有"Rapid GUI Programming with Python and Qt",但他對如何調用使用 designer產生的介面並未詳加說明,且他使用的版本是PyQt4。 環境: 使用python 3.3,pyqt 5.2 (for python 3.3) 程式碼: 主視窗:https://gist.github.com/ginnyhuang/9660481 跳出的dialog:https://gist.github.com/ginnyhuang/9660541#file-dialog 做法: 在class MainWindow使用self.ui = Ui_MainWindow()來調用主視窗的UI 及設定監聽該視窗按鈕,如果按下該按鈕則跳出一個dialog 在class Set_Location_Method使用self.ui = Ui_Dialog()調用dialog的UI 設定OK按鈕→accept與cancel按鈕→reject (accept method覆寫) 被調用的UI皆未改動,使用時執行class MainWindow那個檔案 問題: 主要有兩個問題。 1. 主視窗顯示 class MainWindow(QDialog),這樣設定時會順利跑出視窗 但若設定class MainWindow(QMainWindow)跑出來的視窗沒有元件: http://ppt.cc/GktX 在designer中是create main window,執行部分應該也沒問題? 所以不太懂為何無法使用QMainWindow,但用QDialog能順利執行? 2.跳出dialog 點選按鈕後跳出來的是: http://ppt.cc/aWTX 完全沒有頭緒Orz 試過如果使用的是內建dialog比如QMessageBox是可以正常顯示的。 如果是直接打開這個UI(將mainWindow調用UI的function改為dialog的)也能出來 最後想問大家有沒有推薦的PyQt5 tutorial,本來想看官方的method但有些他連描述都 沒有Orz 感謝各位耐心看完,還望不吝指教:) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.138.179.43

03/20 20:59, , 1F
class 也要繼承那個Ui_ooxx~
03/20 20:59, 1F
是指改成 class MainWindow(QMainWindow, Ui_MainWindow): 嗎?結果一樣QQ

03/20 21:36, , 2F
不用吧 我最近才用過啊
03/20 21:36, 2F

03/20 21:38, , 3F
不好意思 如果是MainWindow我就不太確定了
03/20 21:38, 3F

03/20 22:57, , 4F
你的 .ui 檔的內容是?
03/20 22:57, 4F
感謝突破盲點!原來我之前執行時因為某幾行錯誤讓他註解才能跑,後來改了使用UI的方式 卻忘了被註解的地方~ 我本來想回答:"用PyQt5的pyuic5將designer的.ui轉成.py沒有改直接使用" 結果在複製程式碼時發現原來我有稍微整理Ui_MainWindow 然後就看到被註解掉的MainWindow.setCentralWidget(self.centralwidget)...XD 現在只剩下dialog彈出錯誤的問題了~下面是UI code,因為元件挺多稍嫌雜亂,請見諒 主視窗UI: https://gist.github.com/ginnyhuang/9667790 dialog UI: https://gist.github.com/ginnyhuang/9667817

03/20 22:58, , 5F
PyQt 的文件直接看 C++ 版的就好了,API 都一樣
03/20 22:58, 5F

03/21 00:52, , 6F
__init__, 不是 _init_
03/21 00:52, 6F
啊,真的!我果然還不是很熟悉python(捂臉)。問題解決了,非常感謝~~:D ※ 編輯: ginnyhuang 來自: 1.34.172.80 (03/21 01:10)
文章代碼(AID): #1JAiXlvm (Python)
文章代碼(AID): #1JAiXlvm (Python)