qt designer python显示_使用PyQt5和Qt Designer创建Python GUI应用程序系列(二)

原标题:使用PyQt5和Qt Designer创建Python GUI应用程序系列(二)

正文

本PyQt5教程将向您展示如何使用pyqt创建按钮和触发事件。

创建按钮

我们在本教程中的目标是创建一个按钮,该按钮将更改窗口中标签的文本。

要创建按钮,我们将遵循与创建标签时类似的过程。将以下内容放入我们之前创建的函数中。

b1 = QtWidgets.QPushButton(win)

b1.setText( "点击这里")

#b1.move(100,100) to move the button

现在我们有了一个按钮!

6dc4138c603b47a0873dc2632edbd7bc.jpeg

事件与信号

接下来要做的是将我们的按钮链接到某种事件,以便在单击它时发生某些事情。这为我们带来了一个新的主题,称为事件驱动编程。本文不作详细解释,因为它非常直观,但是PyQt和许多其他GUI框架的工作方式基本上是通过等待事件或信号(术语可互换)的发生。事件/信号的示例是鼠标悬停在按钮上。当这些事件发生时,它们会触发要处理的事件(通常是函数或方法)运行。

对于我们的情况,我们需要按一下按钮。因此,我们将首先创建一个事件触发时可以调用的函数。

defclicked:

print( "点击了") # 当按下按钮时,我们将直接打印“点击了”

接下来,我们将按钮单击事件链接到该函数。这是通过以下行完成的:

b1.clicked.connect(clicked) # 内部主要函数

# 注意:函数参数不需要括号(括号中的内容)

现在,每次我们单击该按钮时,都将打印“点击了”。

面向对象实现

到目前为止,我们已经在函数内部创建了一个非常基本的GUI应用程序。这对于一个小程序来说很好,但是随着我们的GUI变得更加先进,它的伸缩性将不会很好。为了解决这个问题,我们将更改当前代码并使用面向对象实现。

我们的代码被转换成以下内容。注意继承的使用。因为我们从QMainWindow继承了之前提到的win,所以我们都将用self替换。

fromPyQt5 importQtWidgets

fromPyQt5.QtWidgets importQApplication, QMainWindow

importsys

classMyWindow(QMainWindow):

def__init__(self):

super(MyWindow,self).__init__

self.initUI

defbutton_clicked(self):

print( "点击了")

definitUI(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)

defwindow:

app = QApplication(sys.argv)

win = MyWindow

win.show

sys.exit(app.exec_)

window

更改标签文字

现在,我们已更改为OOP方法,可以在按下按钮时使用方法button_clicked来修改标签。

defbutton_clicked(self):

print( "点击了")

self.label.setText( "你刚才点击了按钮")

但是,等等...当我们单击按钮更改标签时,它将截断最后几个字符。

幸运的是,我们可以在更改后通过更新标签大小属性来解决此问题。

让我们添加一个update方法,并从button_clicked方法中调用它。

classMyWindow(QMainWindow):

...

defclicked_button(self):

self.label.setText( "你刚才点击了按钮")

self.update

...

defupdate(self):

self.label.adjustSize

现在我们的标签可以正确调整大小

完整代码

fromPyQt5 importQtWidgets

fromPyQt5.QtWidgets importQApplication, QMainWindow

importsys

classMyWindow(QMainWindow):

def__init__(self):

super(MyWindow,self).__init__

self.initUI

defbutton_clicked(self):

self.label.setText( "你刚才点击了按钮")

self.update

definitUI(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)

defupdate(self):

self.label.adjustSize

defwindow:

app = QApplication(sys.argv)

win = MyWindow

win.show

sys.exit(app.exec_)

window

b9d43c4288254488b1c8008b62535215.jpeg

本文暂时到这里,有补充时再更新,下一节将讲解 如何使用QtDesigner ,敬请关注。

使用PyQt5和Qt Designer创建Python GUI应用程序系列文章总链接见 https://www.linuxidc.com/search.aspx?where=nkey&keyword=65658

更多Python相关信息见Python 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=17

Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx 返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值