zoukankan      html  css  js  c++  java
  • PySide教程:简单的对话框应用程序 狼人:

      本文将展示如何使用基本控件创建简单的对话框。主要流程是用户在QLineEdit中键入名字,点击QPushButton后会看见问候。

      下面这个小程序将创建和显示对话框,小程序会在整个过程中更新,你可以将这个程序用在你需要的项目中。

    代码
    #!/usr/bin/python
    #
    -*- coding: utf-8 -*-

    import sys
    from PySide.QtCore import *
    from PySide.QtGui import *

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

          假如你看过前面的教程,你大概已经熟悉上面的不少代码了吧,应该对引入包、创建应用以及执行Qt主循环很熟悉了。唯一新的地方是类定义。

           你可以创建任意PySide控件的子类。在这里,我们继承QDialog并做了自定义,将名字指定为"Form"。同时,我们实现了 init()方法,init()调用了父类QDialog的init()方法,并调用了setWindowTitle()方法,这个方法设置了对话框窗体的标题。在main()函数中,你可以看到我们创建了Form对象并将其显示出来。

      创建控件
           我们将要创建两个控件 - QLineEdit给用户输入 名字,QPushButton则用来显示QLineEdit的内容。因此,我们把下面两行代码加入 init()方法中。

    # Create widgets
    self.edit = QLineEdit("Write my name here..")
    self.button
    = QPushButton("Show Greetings")

         可以看到,两个控件都显示了相应的文字。

      为控件创建布局
           Qt为了帮助用户在其程序中组织控件而引入了一些布局。这个例子里,我们做简单化处理,只创建一个QVBoxLayout,这个而已将在竖直方向分布控件。把下面的代码加入init()中创建控件后的地方。

    # Create layout and add widgets
    layout = QVBoxLayout()
    layout.addWidget(self.edit)
    layout.addWidget(self.button)
    # Set dialog layout
    self.setLayout(layout)

           我们创建了而已,使用addWidget()方法添加了这些控件。最终窗体将使用我们QVBoxLayout作为其布局。

      创建显示的函数并连接至按钮

           最终,我们需要在窗体中加入显示用户的函数,并连接到我们的按钮上。函数是窗体的一部分,所以需要加在init()函数的后面。

    # Greets the user
    def greetings(self):
    print ("Hello %s" % self.edit.text())

           为了得到需要显示的内容,我们调用了QLineEdit.text()方法。

           现在,我们需要的都有了,只剩下把QPushButton连接到Form.greetings()方法。在init()函数里,我们添加下面的代码:

    # Add button signal to greetings slot
    self.button.clicked.connect(self.greetings)

         在程序运行后,你就可以在QLineEdit中输入你的名字并在终端里看到问候了。

      你还可以接着做

    • 用MessageBox而不是在终端里显示自己的名字。查看 QMessageBox 的帮助文档 ,试试吧。
    • 你可以尝试着给Window添加一个图标 。查看 QWidget的文档
    • 添加一个关闭按钮如何?只需要添加一个按钮,将其加入而已,再把它连接到exit槽就可以了。
    • 你也可以把布局改为水平方向,使用QHBoxLayout. 在PySide Layout 中查看更多,比如 QHBoxLayout, QGridLayout.
  • 相关阅读:
    Java Web 网络留言板2 JDBC数据源 (连接池技术)
    Java Web 网络留言板3 CommonsDbUtils
    Java Web ConnectionPool (连接池技术)
    Java Web 网络留言板
    Java Web JDBC数据源
    Java Web CommonsUtils (数据库连接方法)
    Servlet 起源
    Hibernate EntityManager
    Hibernate Annotation (Hibernate 注解)
    wpf控件设计时支持(1)
  • 原文地址:https://www.cnblogs.com/waw/p/2156618.html
Copyright © 2011-2022 走看看