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