实例
- 创建基于Dialog without Buttons模板的窗口
- 拖出两个Label部件,一个Line Edit部件,一个Push Button部件
- 设定第一个Label部件的text为Enter your name
- 设定Push Button部件的text为Click
- 设定Line Edit部件的object Name为lineEditName
- 设定第二个Label部件的object Name为labelResponse
- 设定Push Button部件的object Name为ButtonClickMe
- 保存为LineEditClass.ui
- 使用pyuic创建LineEditClass.py
- 创建 callLineEditClass.py,代码如下:
import sys
from PyQt5.QtWidgets import QDialog,QApplication
from cookbook_200427.LineEditClass import *
class Student:
name=""
def __init__(self,name):
self.name=name
def printName(self):
return self.name
class MyForm(QDialog):
def __init__(self):
super().__init__()
self.ui=Ui_Dialog()
self.ui.setupUi(self)
self.ui.ButtonClickMe.clicked.connect(self.dispmessage)
self.show()
def dispmessage(self):
studentObj=Student(self.ui.lineEditName.text())
self.ui.labelResponse.setText("Hello "+studentObj.printName())
if __name__=="__main__":
app=QApplication(sys.argv)
w=MyForm()
w.show()
sys.exit(app.exec())
使应用程序更详细
- 创建基于Dialog without Buttons模板的窗口
- 拖出三个Label部件,两个Line Edit部件,一个Push Button部件
- 设定Label部件的text为Student Code,Student Name
- 设定Push Button部件的text为Click
- 设定Line Edit部件的object Name为lineEditCode,lineEditName
- 设定第三个Label部件的object Name为labelResponse
- 设定Push Button部件的object Name为ButtonClickMe
- 保存为demoStudentClass.ui
- 使用pyuic创建demoStudentClass.py
- 创建 callStudentClass.py,代码如下:
import sys
from PyQt5.QtWidgets import QDialog,QApplication
from cookbook_200427.demoStudentClass import *
class Student:
name=""
code=""
def __init__(self,code,name):
self.code=code
self.name=name
def getCode(self):
return self.code
def getName(self):
return self.name
class MyForm(QDialog):
def __init__(self):
super().__init__()
self.ui=Ui_Dialog()
self.ui.setupUi(self)
self.ui.ButtonClickMe.clicked.connect(self.dispmessage)
self.show()
def dispmessage(self):
studentObj=Student(self.ui.lineEditCode.text(),self.ui.lineEditName.text())
self.ui.labelResponse.setText("Code: "+studentObj.getCode()+", Name: "+studentObj.getName())
if __name__=="__main__":
app=QApplication(sys.argv)
w=MyForm()
w.show()
sys.exit(app.exec())