打造按钮 - 使用PyQt5和Qt Designer创建Python GUI应用程序
发布时间:2021-11-09 09:29:37 所属栏目:PHP教程 来源:互联网
导读:本PyQt5教程将向您展示如何使用pyqt创建按钮和触发事件。 创建按钮 我们在本教程中的目标是创建一个按钮,该按钮将更改窗口中标签的文本。 要创建按钮,我们将遵循与创建标签时类似的过程。 将以下内容放入我们之前创建的函数中。 b1 = QtWidgets.QPushButto
本PyQt5教程将向您展示如何使用pyqt创建按钮和触发事件。 创建按钮 我们在本教程中的目标是创建一个按钮,该按钮将更改窗口中标签的文本。 要创建按钮,我们将遵循与创建标签时类似的过程。 将以下内容放入我们之前创建的函数中。 b1 = QtWidgets.QPushButton(win) b1.setText("点击这里") #b1.move(100,100) to move the button 现在我们有了一个按钮! 创建按钮 - 使用PyQt5和Qt Designer创建Python GUI应用程序 事件与信号 接下来要做的是将我们的按钮链接到某种事件,以便在单击它时发生某些事情。 这为我们带来了一个新的主题,称为事件驱动编程。本文不作详细解释,因为它非常直观,但是PyQt和许多其他GUI框架的工作方式基本上是通过等待事件或信号(术语可互换)的发生。 事件/信号的示例是鼠标悬停在按钮上。 当这些事件发生时,它们会触发要处理的事件(通常是函数或方法)运行。 对于我们的情况,我们需要按一下按钮。 因此,我们将首先创建一个事件触发时可以调用的函数。 def clicked(): print("点击了") # 当按下按钮时,我们将直接打印“点击了” 接下来,我们将按钮单击事件链接到该函数。 这是通过以下行完成的: b1.clicked.connect(clicked) # 内部主要函数 # 注意:函数参数不需要括号(括号中的内容) 现在,每次我们单击该按钮时,都将打印“点击了”。 面向对象实现 到目前为止,我们已经在函数内部创建了一个非常基本的GUI应用程序。 这对于一个小程序来说很好,但是随着我们的GUI变得更加先进,它的伸缩性将不会很好。 为了解决这个问题,我们将更改当前代码并使用面向对象实现。 我们的代码被转换成以下内容。注意继承的使用。因为我们从QMainWindow继承了之前提到的win,所以我们都将用self替换。 from PyQt5 import QtWidgets from PyQt5.QtWidgets import QApplication, QMainWindow import sys class MyWindow(QMainWindow): def __init__(self): super(MyWindow,self).__init__() self.initUI() def button_clicked(self): print("点击了") def initUI(self): self.setGeometry(300, 300, 600, 400) self.setWindowTitle("Linux公社www.linuxidc.com") self.label = QtWidgets.QLabel(self) self.label.setText("www.linuxidc.com") self.label.move(50,50) self.b1 = QtWidgets.QPushButton(self) self.b1.setText("点击这里") self.b1.clicked.connect(self.button_clicked) def window(): app = QApplication(sys.argv) win = MyWindow() win.show() sys.exit(app.exec_()) window() 更改标签文字 现在,我们已更改为OOP方法,可以在按下按钮时使用方法button_clicked()来修改标签。 def button_clicked(self): print("点击了") self.label.setText("你刚才点击了按钮") 但是,等等...当我们单击按钮更改标签时,它将截断最后几个字符。 幸运的是,我们可以在更改后通过更新标签大小属性来解决此问题。 让我们添加一个update方法,并从button_clicked()方法中调用它。 class MyWindow(QMainWindow): ... def clicked_button(self): self.label.setText("你刚才点击了按钮") self.update() ... def update(self): self.label.adjustSize() 现在我们的标签可以正确调整大小 完整代码 from PyQt5 import QtWidgets from PyQt5.QtWidgets import QApplication, QMainWindow import sys class MyWindow(QMainWindow): def __init__(self): super(MyWindow,self).__init__() self.initUI() def button_clicked(self): self.label.setText("你刚才点击了按钮") self.update() def initUI(self): self.setGeometry(300, 300, 600, 400) self.setWindowTitle("Linux公社www.linuxidc.com") self.label = QtWidgets.QLabel(self) self.label.setText("www.linuxidc.com") self.label.move(50,50) self.b1 = QtWidgets.QPushButton(self) self.b1.setText("点击这里") self.b1.clicked.connect(self.button_clicked) def update(self): self.label.adjustSize() def window(): app = QApplication(sys.argv) win = MyWindow() win.show() sys.exit(app.exec_()) window() ![]() (编辑:应用网_丽江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐
热点阅读