按钮接受您的命令
之前,我们深入研究了源代码及其引人入胜的输出。让我在此程序的几个关键部分为您提供帮助:
window()是此处的用户定义函数,我们在其中设计并绘制了布局框架。
我们在这里使用了一个使用QDialog()的对话框。您可以通过观察“?”将其与主窗口(其中包含最小化和最大化按钮)区分开。在右上角的关闭窗口红色按钮旁边标记。
这两个按钮的功能已使用两个用户自带的功能b1_pushed()和b2_pushed()设计。
当程序进入主循环时,将调用window()函数,导致接口执行。
源代码:
import sys from PyQt4.QtCore import * from PyQt4.QtGui import * def window(): app = QApplication(sys.argv) layout = QDialog() b1 = QPushButton(layout) b1.setText("Push 1") b1.move(50,20) b1.clicked.connect(b1_pushed) b2 = QPushButton(layout) b2.setText("Push 2") b2.move(50,50) QObject.connect(b2,SIGNAL("clicked()"),b2_pushed) layout.setGeometry(100,100,200,100) layout.setWindowTitle("PyQt-buttons") layout.show() sys.exit(app.exec_()) def b1_pushed(): print ("Button 1 pressed") def b2_pushed(): print ("Button 2 pressed") if __name__ == '__main__': window()
输出结果
事件生成的输出显示在Python Shell上。还有另一种方法。让我们在这里检查一下:
好吧,这里我们在CMD提示窗口上获得输出。我们可以通过双击运行python文件来获得此输出。让我们通过在对话框/布局窗口本身上打印输出首选项来使其更加有趣。我们已经在程序中做了一些修改以达到目的。
在执行源代码之前,让我们再次找出此处编写的第二个程序的关键部分:
QMainWindow()用作Example()函数的参数,并用于制作主窗口布局。它可以很容易地与对话框区分开。我们也可以通过从角落拖动来调整其大小。
self.statusBar()。showMessage()方法用于将字符串作为参数消息传递的消息。
消息正在状态栏部分的主窗口区域(也是一个小部件)中打印。
源代码:
import sys from PyQt4 import QtGui, QtCore class Example(QtGui.QMainWindow): def __init__(self): super(Example, self).__init__() self.initInterface() def initInterface(self): b1 = QtGui.QPushButton(" Push-button 1", self) b1.move(30, 50) b2 = QtGui.QPushButton(" Push-button 2", self) b2.move(150, 50) b1.clicked.connect(self.buttonpushed) b2.clicked.connect(self.buttonpushed) self.statusBar() self.setGeometry(400, 400, 290, 150) self.setWindowTitle(' Push button "sender" ') self.show() def buttonpushed(self): sender = self.sender() self.statusBar().showMessage(' ' + sender.text() + ' was pressed') def main(): app = QtGui.QApplication(sys.argv) ex = Example() sys.exit(app.exec_()) if __name__ == '__main__': main()
输出结果
在这里,您可以看到通过使用名为statusbar的小部件的消息传递机制在主窗口本身上生成了输出。
结论:
最后,在本文结尾,我想得出一个结论,即获取信号和处理插槽比通过视觉效果看起来容易得多。我已经从代码的选定部分中指出了一些关键说明。剩下的任务留给您做一些模棱两可的尝试,并得出有趣的结果。我建议读者不仅仅只是被动地阅读本文。让自己积极参与其中。如果您提出了一些有趣的东西,并且想与您的同行读者分享,请不要仅仅提出疑问,也要发表您的发现。下一篇文章将介绍更多的响应事件处理示例。下一篇文章稍后会吸引您。快乐的学习!
本文向大家介绍事件处理示例(2)-PyQt,包括了事件处理示例(2)-PyQt的使用技巧和注意事项,需要的朋友参考一下 让我们尝试一些更有趣的东西, 1)键盘产生的事件 在执行程序之前,让我们尝试了解代码的关键点。这将有助于我们了解事件,信号和时段的性质。让我们一一研究它们: 这里使用一个简单的窗口作为界面。 keyPressEvent(),这只是PyQt框架中的预定义函数;用于定义所生成按键事件
本文向大家介绍HTML5 CORS中的事件处理程序示例,包括了HTML5 CORS中的事件处理程序示例的使用技巧和注意事项,需要的朋友参考一下 跨域资源共享(CORS)是一种允许来自Web浏览器中另一个域的受限资源的机制 假设,如果您在html5演示部分中单击HTML5-视频播放器。它将询问相机许可。如果用户允许该权限,则只有它会打开相机,否则不会为Web应用程序打开相机。 以下是CORS中事件处
我们需要在constructor中对于事件与对应的handler函数进行绑定. 大多数时候我们在发出DOM事件的组件内部写我们的handler函数. 在下面的例子中,我们在组件内部创建了一个click handler, 因为我们想所有的Swithcer Component当被点击时,做出同样的响应. class Switcher extends React.Component { render
我不喜欢流口水。我正在尝试使用Drools Fusion编写一个简单的复杂事件处理(CEP)应用程序。 我的要求是 我有一个简单的Event类,如下所示: 规则文件如下: 为了进行测试,我将向工作内存中注入4个事件,分别是e1、e2、e3、e4,时间线分别为0m、4m、10m、12m。 Jave类文件 我希望e1通过规则,因为它没有前面的事件。我还预计e3将通过,因为前面的比赛还有6分钟。 但是,
事件处理概述 事件处理是对象化编程的一个很重要的环节,没有了事件处理,程序就会变得很死,缺乏灵活性。事件处理的过程可以这样表示:发生事件 - 启动事件处理程序 - 事件处理程序作出反应。其中,要使事件处理程序能够启动,必须先告诉对象,如果发生了什么事情,要启动什么处理程序,否则这个流程就不能进行下去。事件的处理程序可以是任意 JavaScript 语句,但是我们一般用特定的自定义函数(functi
Mpx在事件处理上基于原生小程序,支持原生小程序的全部事件处理技术规范,在此基础上新增了事件处理内联传参的增强机制。 原生小程序事件处理详情请参考这里 增强的内联传参能力对于传递参数的个数和类型没有特殊限制,可以传递各种字面量,可以传递组件数据,甚至可以传递for中的item和index, 当内联事件处理器中需要访问原始事件对象时,可以传递$event特殊关键字作为参数,在事件处理器的对应参数位置