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

简介:   本文将展示如何使用基本控件创建简单的对话框。主要流程是用户在QLineEdit中键入名字,点击QPushButton后会看见问候。  下面这个小程序将创建和显示对话框,小程序会在整个过程中更新,你可以将这个程序用在你需要的项目中。

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

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

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

import sys
from PySide.QtCore import *
from PySide.QtGui import 上海闵行企业网站制作tyle="color: #000000;"> *

class Form(QDialog):

def __init__上海企业网站设计与制作pan>(self, parent=None):
super(Form, self).
__init__(parent)
self.setWindowTitle(
"My Form")


if __name__ == '__main__':上海徐汇企业网站制作r /> # 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.
目录
相关文章
|
1月前
|
C# Windows
.NET开源免费的Windows快速文件搜索和应用程序启动器
今天大姚给大家分享一款.NET开源(MIT License)、免费、功能强大的Windows快速文件搜索和应用程序启动器:Flow Launcher。
|
4月前
|
开发框架 JSON JavaScript
ASP.NET Core3.1实战教程---基于Jquery单文件上传
ASP.NET Core3.1实战教程---基于Jquery单文件上传
27 0
|
5月前
|
算法 Java 调度
|
11天前
|
C#
一个库帮你轻松的创建漂亮的.NET控制台应用程序
一个库帮你轻松的创建漂亮的.NET控制台应用程序
|
2天前
|
XML 开发框架 .NET
C#/ASP.NET应用程序配置文件app.config/web.config的增、删、改操作
C#/ASP.NET应用程序配置文件app.config/web.config的增、删、改操作
|
11天前
|
C# Windows
一款.NET开源、简洁易用的Windows桌面小说阅读应用
一款.NET开源、简洁易用的Windows桌面小说阅读应用
|
12天前
|
开发框架 物联网 测试技术
【专栏】.NET 开发:打造领先应用的基石
【4月更文挑战第29天】本文探讨了.NET开发框架为何成为构建领先应用的首选。高性能与稳定性是.NET的核心优势,它采用先进的技术和优化策略,如.NET Core的轻量级设计和JIT/AOT编译模式。跨平台兼容性让开发者能用相同代码库在不同操作系统上构建应用。现代化的开发体验,如C#语言的创新特性和Visual Studio的强大工具,提升了开发者生产力。丰富的生态系统和广泛支持,包括庞大的开发者社区和微软的持续投入,为.NET提供了坚实后盾。
|
12天前
|
机器学习/深度学习 人工智能 Cloud Native
【专栏】洞察.NET 技术的前沿应用
【4月更文挑战第29天】本文探讨了.NET技术的前沿应用,包括.NET Core的跨平台崛起、云原生及AI/机器学习领域的整合。.NET Core支持多平台运行,开源社区的参与促进了其快速发展和性能优化。Xamarin与.NET MAUI助力跨平台移动应用和统一界面开发,而云原生应用借助.NET Core与Azure云服务得以轻松构建和部署。此外,ML.NET和TensorFlow.NET为.NET开发者提供了机器学习和深度学习工具,推动智能应用和边缘计算的创新。.NET技术正持续演进,引领软件开发新趋势。
|
12天前
|
人工智能 物联网 开发者
【专栏】探究.NET 技术的创新应用
【4月更文挑战第29天】本文探讨了.NET技术的最新进展和创新应用,包括.NET 5及后续版本的统一平台、性能提升、跨平台支持、云集成优化和开源社区的贡献。在创新应用场景中,重点介绍了微服务架构、物联网、AI、游戏开发和移动应用。未来,.NET将持续优化性能,深化云原生应用,集成新兴技术,扩大社区生态,并促进相关教育和培训。开发者应把握.NET技术的潜力,积极参与其发展,创造更多创新软件产品。
|
13天前
|
安全 Linux API
【专栏】.NET 开发:打造卓越应用的秘诀
【4月更文挑战第29天】本文介绍了.NET技术的起源、核心特性和应用场景,揭示了其打造卓越应用的秘诀。自2002年推出,.NET历经发展,现支持跨平台,包括.NET Core和.NET 5。其核心特性包括:跨平台兼容性、面向对象编程、内置安全性和高效性能。丰富的类库、强大的开发工具、简洁的语言语法以及活跃的社区支持,使.NET成为构建高效、安全应用的理想选择。随着技术进步,.NET将持续赋能开发者创造更多可能性。