推薦使用此方法,通過繼承QMainWindow達(dá)到使界面與代碼分離的目的
建立一個(gè)新的文件,假設(shè)命名為 "test_MyApp.py", 調(diào)入如下的代碼:
1
# File : test_MyApp.py
2
import sys
3
4
from PyQt4 import QtGui, QtCore
5
6
from MyApp import Ui_MainWindow
7
8
9
10
# We start a new class here
11
12
# derived from QMainWindow
13
14
15
16
class TestApp(QtGui.QMainWindow):
17
18
def __init__(self):
19
20
QtGui.QMainWindow.__init__(self)
21
22
23
24
self.ui = Ui_MainWindow()
25
26
self.ui.setupUi(self)
27
28
29
30
# Connect the pushButton to a message method.
31
32
self.connect(self.ui.pushButton, QtCore.SIGNAL("clicked()"),message)
33
34
35
36
def message():
37
38
print "Hello, world !\n"
39
40
41
42
if __name__ == "__main__":
43
44
app = QtGui.QApplication(sys.argv)
45
46
window = TestApp()
47
48
window.show()
49
50
sys.exit(app.exec_())
51
52

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

在20至26行將由QtDesigner生成的python UI模塊導(dǎo)入,而在32行中加入自定義的slot,這樣以后對按鈕響應(yīng)等消息則放在這個(gè)文件中,而對原UI文件的修改與這個(gè)響應(yīng)文件的修改則可以相互獨(dú)立,因?yàn)槿魧懺谝粔K的話,每次修改界面,在生成新的UI 模塊的時(shí)候會(huì)將原有的
代碼覆蓋掉。