pyqt官网翻译 and 学习笔记 (4)Creating a Simple PySide2 Dialog Application¶

单于承
2023-12-01

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_())

 

 
 类似资料: