1 # -*- coding: utf-8 -*- 2 from PyQt5 import QtWidgets,QtCore #從pyqt庫導入QtWindget通用窗口類 3 from formnew import Ui_Form 4 5 class mywindow(QtWidgets.QWidget,Ui_Form): #自己建的類,繼承QtWidgets.Qwidget類方法和Ui_Form界面類 6 7 _signal = QtCore.pyqtSignal(str) #定義信號,定義參數類型為str 8 9 def __init__(self): 10 super(mywindow,self).__init__() #首先找到子類(mywindow)的父類(QWidget),然后把my的對象self轉成QWidget的對象,然后被轉化的self調用自己的init函數 11 self.setupUi(self) #直接繼承界面類,調用類的setupUi方法 12 13 self.pushButton_2.clicked.connect(self.myPrint) #連接自己的槽函數 14 self._signal.connect(self.mySignal) #將信號連接到函數mySignal 15 16 def myPrint(self): #自定義的槽函數。槽其實就是個函數(方法) 17 self.textBrowser.setText("") 18 self.textBrowser.append("我是槽函數") 19 self._signal.emit("發射信號,傳遞字符串") 20 21 def mySignal(self,string): #自定義信號函數 22 self.textBrowser.append(string) #接受到字符串,打印出來 23 self.textBrowser.append("我是信號函數") 24 25 26 if __name__=="__main__": 27 import sys 28 29 app=QtWidgets.QApplication(sys.argv) #pyqt窗口必須在QApplication方法中使用 30 myshow=mywindow() #生成mywindow類的實例 myshow 31 myshow.show() #myshow調用show方法 32 sys.exit(app.exec()) #消息結束的時候,結束進程,並返回0,接着調用sys.exit(0)退出程序
上面這個是index.py
從qtdesigner直接生成的代碼:
1 __author__ = 'yangyang5' 2 3 from PyQt5 import QtCore, QtGui, QtWidgets #導入模塊 4 5 class Ui_Form(object): #創建窗口類,繼承object 6 7 def setupUi(self, Form): 8 Form.setObjectName("Form") #設置窗口名 9 Form.resize(400, 300) #設置窗口大小 10 self.pushButton = QtWidgets.QPushButton(Form) #新建按鈕,並加入到窗口中 11 self.pushButton.setGeometry(QtCore.QRect(270, 240, 75, 23)) #設置按鈕的大小和位置 12 self.pushButton.setObjectName("pushButton") #設置按鈕名 13 self.textBrowser = QtWidgets.QTextBrowser(Form) 14 self.textBrowser.setGeometry(QtCore.QRect(60, 20, 256, 192)) 15 self.textBrowser.setObjectName("textBrowser") 16 self.pushButton_2 = QtWidgets.QPushButton(Form) 17 self.pushButton_2.setGeometry(QtCore.QRect(40, 240, 75, 23)) 18 self.pushButton_2.setObjectName("pushButton_2") 19 20 21 self.retranslateUi(Form) 22 self.pushButton.clicked.connect(Form.close) #點擊按鈕,關閉窗體 23 QtCore.QMetaObject.connectSlotsByName(Form) #關聯信號槽 24 25 def retranslateUi(self, Form): 26 _translate = QtCore.QCoreApplication.translate 27 Form.setWindowTitle(_translate("Form", "Form")) #設置窗口標題 28 self.pushButton.setText(_translate("Form", "Quit")) #設置按鈕名 29 self.pushButton_2.setText(_translate("Form", "Print"))
使用環境:
Python3.4 + Pyqt5第三方庫
相關資料:
http://blog.csdn.net/a359680405/article/details/45096185
