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

简介:   在这篇文章里,我们将为你展示如何使用PySide使用信号、槽机制。基本来说,这是Qt提供给你的允许一个图形控件与其他图形控件或者python代码进行通讯的特性。  我们将要创建一个应用,你点击应用中的按钮后将在Python终端里显示"Hello World"字样。

  在这篇文章里,我们将为你展示如何使用PySide使用信号、槽机制。基本来说,这是Qt提供给你的允许一个图形控件与其他图形控件或者python代码进行通讯的特性。

  我们将要创建一个应用,你点击应用中的按钮后将在Python终端里显示"Hello World"字样。

  下面让我们引入必要的Qt类以及python sys类。

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

  同时,创建一个python函数,只是用来向终端写入"Hello World"

 
 
# Greetings
def sayHello():
print " Hello World! "

  现在,就像在PySide教程:第一个PySide应用 里提到的,你必须在运行PySide代码前先创建QApplication。输入以下代码

 
 
# Create the Qt Application
app = QApplication(sys.argv)

  让我们创建可以点击的按钮,QPushButton。我们传给构造函数一个python字符串,显示在按钮之上。

 
 
# Create a button
button = QPushButton( " Click me " )

  在显示按钮之前,我们必须把按钮和之前定义的函数sayHello()连起来。目前来说,有两种方法可以达到这个效果 -- 一种旧方式,一种新方式。新方式更符合python的风格(pythonic)。我们在这里使用新方式。你现在可以在 PySide中的信号和槽 找到更多信息。

  QPushButton已经预定义了一个名为clicked的信号,每次按钮按下后都会发射这个信号。我们现在将它和函数sayHello()连接起来。

 
 
# Connect the button to the function
button.clicked.connect(sayHello)

最终,我们显示这个按钮,并进入Qt主循环。

 
 
# Show the button
button.show()
# Run the main Qt loop
app.exec_()

  每次你点击按钮,你都能在终端里看到"Hello World"字样。

完整代码:

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

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

def sayHello():
print "Hello World!"

# Create the Qt Application
app = QApplication(sys.argv)
# Create a button, connect it and show it
button = QPushButton("Click me")
button.clicked.connect(sayHello)
button.show()
# Run the main Qt loop
app.exec_()

目录
相关文章
|
自然语言处理 数据可视化 Java
Spring Data Elasticsearch 聚合查询
如需要统计某件商品的数量,最高价格,最低价格等就用到了聚合查询,就像数据库中的group by
687 0
|
存储 Unix 数据挖掘
RAID5数据恢复—zfs文件系统下重组RAID5阵列的方法详解
RAID5数据恢复环境: 一台存储上有一组由12块SCSI硬盘(11块数据盘+1块热备盘)组建的RAID5磁盘阵列,FreeBSD操作系统+zfs文件系统。 RAID5故障:
|
机器学习/深度学习 人工智能 监控
YOLO的前世今生以及来龙去脉的背景介绍
YOLO的前世今生以及来龙去脉的背景介绍
|
存储 安全 5G
|
网络协议 安全 网络安全
图解OSI七层模型,2024最强科普!
【7月更文挑战第20天】
4530 2
图解OSI七层模型,2024最强科普!
|
Unix 数据安全/隐私保护 安全
|
域名解析 监控 网络协议
内网穿透介绍
内网穿透介绍
|
消息中间件 Android开发 开发者
🔍深度剖析Android内存泄漏,让你的App远离崩溃边缘,稳如老狗!🐶
【7月更文挑战第28天】在 Android 开发中,内存管理至关重要。内存泄漏可悄无声息地累积,最终导致应用崩溃或性能下滑。它通常由不正确地持有 Activity 或 Fragment 的引用引起。常见原因包括静态变量持有组件引用、非静态内部类误用、Handler 使用不当、资源未关闭及集合对象未清理。使用 Android Studio Profiler 和 LeakCanary 可检测泄漏,修复方法涉及使用弱引用、改用静态内部类、妥善管理 Handler 和及时释放资源。良好的内存管理是保证应用稳定性的基石。
564 4
|
弹性计算 固态存储 调度
阿里云服务器部署配置选择全攻略,ECS实例规格、CPU内存配置
阿里云服务器部署配置选择全攻略,ECS实例规格、CPU内存配置,CPU内存、公网带宽和系统盘怎么选择?个人用户选择轻量应用服务器或ECS通用算力型u1云服务器,企业用户选择ECS计算型c7、通用型g7云服务器,阿里云百科分享阿里云服务器配置选择方法
|
NoSQL Java Redis
基于Redis的分布式锁,Redisson的简单使用和常用配置
Redisson是一个在Redis基础上实现的Java驻内存数据网格。Redisson提供了使用Redis的最简单最便捷的方法。Redisson的宗旨是促进使用者对Redis的关注分离,从而让使用者能够将精力更集中的放在处理业务逻辑上。