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.
时间: 2024-09-07 15:00:25

PySide教程:简单的对话框应用程序的相关文章

PySide教程:简单的对话框应用程序“.NET研究”

本文将展示如何使用基本控件创建简单的对话框.主要流程是用户在QLineEdit中键入名字,点击QPushButton后会看见问候. 下面这个小程序将创建和显示对话框,小程序会在整个过程中更新,你可以将这个程序用在你需要的项目中. 代码 #!/usr/bin/python# -*- coding: utf-8 -*- import sysfrom PySide.QtCore import *from PySide.QtGui import上海闵行企业网站制作tyle="color: #000000

PySide教程:一个简单的点击按钮示例

在这篇文章里,我们将为你展示如何使用PySide使用信号.槽机制.基本来说,这是Qt提供给你的允许一个图形控件与其他图形控件或者python代码进行通讯的特性. 我们将要创建一个应用,你点击应用中的按钮后将在Python终端里显示"Hello World"字样. 下面让我们引入必要的Qt类以及python sys类. import sysfrom PySide.QtCore import *from PySide.QtGui import * 同时,创建一个python函数,只是用来向

PySide教程:一个简单的点击“.NET研究”按钮示例

在这篇文章里,我们将为你展示如何使用PySide使用信号.槽机制.基本来说,这是Qt提供给你的允许一个图形控件与其他图形控件或者python代码进行通讯的特性. 我们将要创建一个应用,你点击应用中的按钮后将在Python终端里显示"Hello World"字样. 下面让我们引入必要的Qt类以及python sys类. import sysfrom PySide.QtCore import *from PySide.QtGui import * 同时,创建一个python函数,只是用来向

Flash AS3.0构建简单的声音可视化程序(波型图)

本例为Flash AS3.0实例教程,在教程中我们将学习运用SoundMixer.computeSpectrum() 方法来构建简单的声音可视化程序(即波形图),希望能给朋友们带来帮助~~ AS3.0构建简单的声音可视化程序(波型图): 开发"> 使用 SoundMixer.computeSpectrum() 方法来显示声音波形图: import flash.display.Graphics; import flash.events.Event; import flash.media.So

教你使用Visual Studio 2010创建简单的Silverlight应用程序

Silverlight是创建动态的引人的RIAs(Rich Internet Application)的新方法.这里教你创建简单的Silverlight应用程序. 1. 打开VS,新建项目,选择Silverlight应用程序模板. 2. 命名mySimpleSilverlightApplication,点击确定. 3. 在弹出的对话框中,清除"在新网站中承载Silverlight应用程序"复选框,点击确定. 4. 你的界面应该是这样的. 5. 拖四个控件(2个标签.1个文本框和1个按钮

学写基于对话框的程序

用汇编写基于对话框的程序,可以和写VB程序一样清晰简单,并且相当多的程序都是这样的结构.用VB写的所以程序几乎都是这样的 .设计程序界面 和在VC中一样,界面(对话框已经各种控件)一般是以资源的方式存在的.编辑资源文件完全可以使用VC的资源编辑器.但是熟悉 一下资源文件的写法及意义是编程所必须的.下面是一个资源文件的例子: #include "\masm32\include\resource.h"#define IDC_EDIT 3000#define IDC_BUTTON 3001#

使用NetBeans IDE创建并运行一个简单的web应用程序

在本教程中,您将使用 NetBeans IDE 创建并运行一个简单的 web 应用程序,Hello Web.本示例应用程序要求您输入一个名字,之后使用那个名字显示一条信息.首先,您需要使用一个输入框来实现这个页面.之后您使用一个用户可以选择名字的下拉列表来替换那个输入框.下拉列表中输入的名字来自数据库表. 本教程需要以下技术以及资源的支持 JavaServer Faces 组件/Java EE 平台 1.2 with Java EE 5*1.1 with J2EE 1.4 Travel 数据库

如何使用NetBeans IDE创建简单的Web应用程序

本文档将向您介绍有关使用 NetBeans IDE 开发 Web 应用程序的基础知识.它将演示如何创建简单的 Web 应用程序,如何将该应用程序部署到服务器,以及如何在浏览器中查看该应用程序的表现形式.该应用程序采用一个 JavaServer Pages (JSP) 页来要求您输入自己的姓名.然后,使用 JavaBeans 组件在 HTTP 会话期间保留该姓名,并检索该姓名以输出到第二个 JSP 页上. 要学习本教程,您需要具备以下软件和资源. 软件或资源 要求的版本 NetBeans IDE

mfc-基于MFC对话框的程序中如何打开一个单文档

问题描述 基于MFC对话框的程序中如何打开一个单文档 我是MFC的初学者,现在遇到了一个问题,就是如何在基于对话框的程序中,如何通过一个对话框中的按钮打开一个单文档.(我的目的是想在打开的单文档中绘制折线图),求各位大神指点 解决方案 你干嘛用基于对话框的程序,你完全可以创建一个基于单文档的程序,再添加对话框,这比你先创建一个对话框的程序,再添加文档视图支持简单的多. 解决方案二: 在MFC下使用OpenGL的一个简单的例子(基于单文档程序)MFC应用程序类型:单文档.多文档与基于对话框MFC窗