2012-01-16 112 views
3

我正在用PyQt4(Python3)編寫一個GUI應用程序。我的一位朋友指出,使用pyuic4是一個不好的做法,並將我引薦到uic模塊和連接插槽名稱功能。他沒有時間去解釋更多,我有引用是相當短的,我無法把握從他們(uic moduleLoadingUIFilesAtRuntime,​​)的想法。新型信號和插槽支持,PyQt

在計算器上有至少一個related question但文獻鏈接被有斷裂。

我可以遵循標準教程和使用pyuic做了簡單的GUI,但現在覺得有點迷茫......任何好的例子和/或引用的歡迎。

回答

3

首先,利用pyuic4肯定不是「壞習慣」。

有獲得方式主要有三種PyQt4的UI的到你的代碼:

  • 寫全手工製作自己
  • 使用pyuic4自動生成可導入
  • 使用一個Python模塊uic包加載ui文件直接在運行時

這些當中,前兩個是迄今爲止最常見的,最實況認識,教程,建議等你會遇到將使用這些方法。

PyQt4教程的一個很好的來源可以在PyQt4 Wikithis section找到。不過,我也許應該指出,雖然仍然相關,但其中很多已經很老了,仍舊使用舊式的信號和插槽。

然而,舊式和新 - 風格之間的差異並不難理解,也許一個簡單的例子是所有的需要。

這裏是老式的方式來一個按鈕,點擊信號連接到一個處理方法(又名插槽):

self.connect(self.button, QtCore.SIGNAL('clicked()'), self.handleButtonClick) 

和這裏的新型方式:

self.button.clicked(self.handleButtonClick) 

正如你可以看到,新式更簡單,更加pythonic。另一方面,舊式與使用C++連接信號的方式非常相似(因爲這個原因在某些情況下仍然有用)。

如果你有寫你的GUI當連接信號的問題,您可以隨時在這裏提出一個問題 - 但它容易得多,如果你問的是包括示例代碼的具體問題得到很好的答案。

+0

謝謝你的回答和參考。新風格看起來更容易。我應該再次問我的朋友他的意思是什麼:將兩種方法結合起來,LoadUI和通過名稱連接,這很有道理。 – Katya 2012-01-17 09:36:30