PyQt41 hello kitty

1 from PyQt4.QtGui import *
2 from PyQt4.QtCore import *
3 import sys
4
5 app=QApplication(sys.argv)
6 b=QPushButton("Hello Kitty!")
7 b.show()
8 app.connect(b,SIGNAL("clicked()"),app,SLOT("quit()"))
9 app.exec_()  
第1行导入PyQt4.QtGui的所有类及模块,包括QApplication,所有Qt图形化应用程序都必须包含此文件,它包含了Qt图形化应用程序的各种资源,基本设置,控制流以及事件处理等。

第5行新创建了一个QApplication对象,每个Qt应用程序都必须有且只有一个QApplication对象,采用sys.argv作为参数,便于程序处理命令行参数。

第6行创建了一个QPushButton对象,并设置它的显示文本为“Hello Kitty!”,由于此处并没有指定按钮的父窗体,因此以自己作为主窗口。

第7行调用show()方法,显示此按钮。控件被创建时,默认是不显示的,必须调用show()函数来显示它。

第8行的connect方法是Qt最重要的特征,即信号与槽的机制。当按钮被按下则触发clicked信号,与之相连的QApplication对象的槽quit()响应按钮单击信号,执行退出应用程序的操作。关于信号与槽机制在本实例最后将进行详细的分析。

最后调用QApplication的exec_()方法,程序进入消息循环,等待可能输入进行响应。Qt完成事件处理及显示的工作,并在应用程序退出时返回exec_()的值。

最后执行程序即可出现上图所示的对话框,一个简单的Hello Kitty!例子完成。

信号与槽机制作为Qt最重要的特性,提供了任意两个Qt对象之间的通信机制。其中,信号会在某个特定情况或动作下被触发,槽是用于接收并处理信号的函数。例如,要将一个窗口中的变化情况通知给另一个窗口,则一个窗口发送信号,另一个窗口的槽接收此信号并进行相应的操作,即可实现两个窗口之间的通信。这比传统的图形化程序采用回调函数的方式实现对象间通信要简单灵活得多。每个Qt对象都包含预定的信号和槽,当一某一特定事件发生时,一个信号被发射,与信号相关联的槽则会响应信号完成相应的处理。

信号与槽机制常用的连接方式为:

connect(Object1,SIGNAL(signal),Object2,SLOT(slot))

signal为对象Object1的信号,slot为对象Object2的槽,Qt的窗口部件都包含若干个预定义的信号和若干个预定义的槽。当一个类被继承时,该类的信号和槽也同时被继承。开始人员也可以根据需要定义自己的信号和槽。

信号与槽机制可以有多种连接方式,下图描述了信号与槽的多种可能连接方式。

1.一个信号可以与另一个信号相连

connect(Object1,SIGNAL(signal1),Object2,SIGNAL(signal1))

即表示Object1的信号1发射可以触发Object2的信号1发射。

2.表示一个信号可以与多个槽相连

connect(Object1,SIGNAL(signal2),Object2,SLOT(slot2))

connect(Object1,SIGNAL(signal2),Object3,SLOT(slot1))

3.表示同一个槽可以响应多个信号

connect(Object1,SIGNAL(signal2),Object2,SLOT(slot2))

connect(Object3,SIGNAL(signal2),Object2,SLOT(slot2)) 
时间: 2024-10-12 10:05:50

PyQt41 hello kitty的相关文章

ZOJ 3644 Kitty's Game (图上DP 约数)

哎-这一场就做了三个题目,全队倒数第一,简直是太弱了. A Kitty's Game (ZOJ 3644) 题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3644 题意: 给出一个有向图,每个节点有一个权值pi, 有一个人从1节点出发(其权值为1节点的权值),前往n号节点,每经过一个节点,他的权值就变成了他经过这个节点前的权值和这个节点权值的最小公倍数,如果他经过这个节点后权值不发生变化则他就不能经过这个节点

ZOJ 3644 Kitty's Game dfs,记忆化搜索,map映射 难度:2

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4834 从点1出发,假设现在在i,点数为sta,则下一步的点数必然不能是sta的因数,所以不会形成环,只需从1直接走,走到n即可. 但是如果这样的话时空复杂度就都是nk,明显不满足题意,而这个时候我们可以想到,每个状态都必然是k的约数,(点数不是k的约数的节点不在路上,可以无视),而约数的个数也就k^0.5个,可以直接用map映射,这样时空复杂度都是n*k^0.5,可以解出答案

ZOJ 3644 Kitty's Game(DP)

Description Kitty is a little cat. She is crazy about a game recently. There are n scenes in the game(mark from 1 to n). Each scene has a number pi. Kitty's score will become least_common_multiple(x,pi) when Kitty enter the ith scene. x is the score

Kitty:Python语言编写的Fuzzing框架

Kitty是一款用Python语言编写的开源的模块化.可扩展的模糊测试框架,灵感来源于OpenRCE’s Sulley 和 Michael Eddington的 (现在为Deja Vu Security的) Peach Fuzzer . 目标 我们开始写Kitty的时候,目的是帮助我们fuzz特殊的目标.也就就是运行于非TCP/IP通道上的私有和内部协议.一个通用.抽象的框架应该包含所有我们能想到的模糊测试过程中用到的所有通用功能,并且能方便用户扩展,以便用来攻击特定目标. 特性 心中有了这样的

Luogu P2562 [AHOI2002]Kitty猫基因编码

题目描述 小可可选修了基础生物基因学.教授告诉大家 Super Samuel 星球上 Kitty猫的基因的长度都是 2 的正整数次幂 ), 全是由两种不同的基因单元组成的. 这两种不同的基因单元分别记成 0 和 1,于是 Kitty 猫基因可以写成一个 01 串表达式 . 为了便于分析和降低数据存储量,教授发明了 ABC 编码规则.该编码规则是不断地按照 对 Kitty 猫基因 01 串表达式 进行改写, 直至最终被改写成只含有字符 " A"." B"."

BNU27937——Soft Kitty——————【扩展前缀和】

Soft Kitty Time Limit: 1000ms Memory Limit: 65536KB 64-bit integer IO format: %lld      Java class name: Main Prev Submit Status Statistics Discuss Next Type: None None   Graph Theory       2-SAT       Articulation/Bridge/Biconnected Component       

HackerRank "Kitty and Katty"

It's more of a brain-teaser than a Game Theory problem.. #!/bin/python3 T = int(input().strip()) for a0 in range(T): n = int(input().strip()) # # The last left 2 blocks can always produce a winning state, given % 3: # Think about the below cases # eq

洛谷—— P2562 [AHOI2002]Kitty猫基因编码

P2562 [AHOI2002]Kitty猫基因编码 题目描述 小可可选修了基础生物基因学.教授告诉大家 Super Samuel 星球上 Kitty猫的基因的长度都是 2 的正整数次幂 ), 全是由两种不同的基因单元组成的. 这两种不同的基因单元分别记成 0 和 1,于是 Kitty 猫基因可以写成一个 01 串表达式 . 为了便于分析和降低数据存储量,教授发明了 ABC 编码规则.该编码规则是不断地按照 对 Kitty 猫基因 01 串表达式 进行改写, 直至最终被改写成只含有字符 “ A”

Kitty+MTPuTTY设置全局字体(xshell的替代方案)

xshell是收费的,过了30天就不能用了.我们应该找一个开源的替代品.说实话windows平台没有什么可选的,就是putty.但是原生的putty不好用,记不住密码,又不支持多标签. Kitty是基于putty的,能记住密码,但是不支持多标签. 为了支持多标签需要要下载一个插件MTPuTTY. 下载后将2个exe放在同一个文件夹里双击即可(下载portable的版本). 1.putty设置默认字体. 注意最后一步,点击Session,然后点保存. 2.运行MTPutty,随便选择一个sessi