事件处理示例-PyQt
按钮接受您的命令
1.在Python Shell或CMD提示符下获取输出
之前,我们深入研究了源代码及其引人入胜的输出。让我在此程序的几个关键部分为您提供帮助:
window()是此处的用户定义函数,我们在其中设计并绘制了布局框架。
我们在这里使用了一个使用QDialog()的对话框。您可以通过观察“?”将其与主窗口(其中包含最小化和最大化按钮)区分开。在右上角的关闭窗口红色按钮旁边标记。
这两个按钮的功能已使用两个用户自带的功能b1_pushed()和b2_pushed()设计。
当程序进入主循环时,将调用window()函数,导致接口执行。
源代码:
import sysfrom 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文件来获得此输出。让我们通过在对话框/布局窗口本身上打印输出首选项来使其更加有趣。我们已经在程序中做了一些修改以达到目的。
2.在主窗口本身上获取输出
在执行源代码之前,让我们再次找出此处编写的第二个程序的关键部分:
Example()是一个用户构建的函数,其中包含所有实现代码。程序进入主循环时将调用此方法。
QMainWindow()用作Example()函数的参数,并用于制作主窗口布局。它可以很容易地与对话框区分开。我们也可以通过从角落拖动来调整其大小。
self.statusBar()。showMessage()方法用于将字符串作为参数消息传递的消息。
消息正在状态栏部分的主窗口区域(也是一个小部件)中打印。
源代码:
import sysfrom 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的小部件的消息传递机制在主窗口本身上生成了输出。
结论:
最后,在本文结尾,我想得出一个结论,即获取信号和处理插槽比通过视觉效果看起来容易得多。我已经从代码的选定部分中指出了一些关键说明。剩下的任务留给您做一些模棱两可的尝试,并得出有趣的结果。我建议读者不仅仅只是被动地阅读本文。让自己积极参与其中。如果您提出了一些有趣的东西,并且想与您的同行读者分享,请不要仅仅提出疑问,也要发表您的发现。下一篇文章将介绍更多的响应事件处理示例。下一篇文章稍后会吸引您。快乐的学习!
以上是 事件处理示例-PyQt 的全部内容, 来源链接: utcz.com/z/337935.html