Creating a Simple PySide2 Dialog Application¶
这个教程是一个对话框部件。想法是让用户输入他们的名字在一个QLineEdit部件里。并且在对话框中提示信息。
Let us just start with a simple stub that creates and shows a dialog. 【stub,根 是什么东西?】
【感觉不重要】
import sys
from PySide2.QtWidgets import QApplication, QDialog, QLineEdit, QPushButton
class Form(QDialog):
def __init__(self, parent=None):
super(Form, self).__init__(parent)
self.setWindowTitle("My Form")
if __name__ == '__main__':
# Create the Qt Application
app = QApplication(sys.argv)
# Create and show the form
form = Form()
form.show()
# Run the main Qt loop
sys.exit(app.exec_())
上面代码对你来说并不新鲜。。。。【说实话,让我只写3 4 遍,我不觉得我学会了】
我们创建一个类去继承QDialog。然后,我们在这个子类添加对话框,我们命名为Form,我们也使用了__init__()。设置了标题
创建两个部件
# Create widgets
self.edit = QLineEdit("Write my name here..")
self.button = QPushButton("Show Greetings")
使用布局功能来,管理布局。
qt自带的布局管理的概念。【相信我,只看他这个东西,能看懂算鬼,自己百度吧。关键词 pyqt布局管理】
# Create layout and add widgets
layout = QVBoxLayout()
layout.addWidget(self.edit)
layout.addWidget(self.button)
# Set dialog layout
self.setLayout(layout)
我们创建了布局,然后用addWidget,添加了部件,最后我们设置了布局。
创建函数,去连接按钮
# Greets the user
def greetings(self):
print ("Hello {}".format(self.edit.text()))
这个函数的功能就是吧QLineEdit里面的内容打印出来
现在我们只需要连接就行了
self.button.clicked.connect(self.greetings)
完整 代码:
import sys
from PySide2.QtWidgets import (QLineEdit, QPushButton, QApplication,
QVBoxLayout, QDialog)
class Form(QDialog):
def __init__(self, parent=None):
super(Form, self).__init__(parent)
# Create widgets
self.edit = QLineEdit("Write my name here")
self.button = QPushButton("Show Greetings")
# Create layout and add widgets
layout = QVBoxLayout()
layout.addWidget(self.edit)
layout.addWidget(self.button)
# Set dialog layout
self.setLayout(layout)
# Add button signal to greetings slot
self.button.clicked.connect(self.greetings)
# Greets the user
def greetings(self):
print ("Hello %s" % self.edit.text())
if __name__ == '__main__':
# Create the Qt Application
app = QApplication(sys.argv)
# Create and show the form
form = Form()
form.show()
# Run the main Qt loop
sys.exit(app.exec_())