pyqt按钮调用python程序_PyQt:链接按钮到程序中的函数

news/2024/7/24 1:40:21 标签: pyqt按钮调用python程序

在PyQt5中,QWidgets模块提供一组UI元素来创建经典的桌面式用户界面。小部件可以显示数据和状态信息,接收用户输入,并为应该组合在一起的其他小部件提供容器。一个没有嵌入到父控件中的小部件称为窗口。包含各种子控件的父窗口小部件小部件。所以首先,你开始为你的窗口编写一个代码window=QtWidgets.QWidget()

(QWidget类是所有用户界面对象的基类)。创建窗口后,需要为UI窗口设置布局。Qt中有许多用于布局的类,但最常见的是QVBoxLayout(垂直排列窗口小部件)和{}(水平排列窗口小部件),很多时候它们都被用来制作自定义布局。现在将您的QVBoxLayout创建为

^{pr2}$

(请注意,vbox只是一个变量名)text_1=QtWidgets.QLineEdit()

text_2=QtWidgets.QLineEdit()

run_btn=QtWidgets.QPushButton("run")

text_3=QtWidgets.QLineEdit()

注意,在QPushButton中,我们可以将按钮的名称作为它的参数(在本例中是ex-run)。现在是事件和信号的时候了。

为了将按钮连接到一个函数,我们写下btn.clicked.connect(function_name)这里btn是我们的按钮。注意这里的函数名没有括号,这意味着我们没有调用函数,只是将按钮连接到函数上(当用户单击按钮时,函数将被执行)run_btn=QtWidgets.QPushButton("run")

def main():

data_1=text_1.text()

data_2=text_2.text()

text_3.setText(str(int(data_1)+int(data_2)))

现在在我们的main函数中,我们首先从text_1和{}收集数据(有一个text()方法,QLineEdit从QLineEdit获取数据,作为str)。因此,main函数同时接受{}和{}的值并将它们相加(如果输入的值不能转换成整数,则会引发错误)并通过setText()方法将该值设置为text_3。在

现在您必须将小部件打包到我们之前创建的vbox中vbox.addWidget(text_1)

vbox.addWidget(text_2)

vbox.addWidget(run_btn)

vbox.addWidget(text_3)

现在将窗口的布局设置为window.setLayout(vbox)

把窗户展示成window.show()

到现在为止,有一件事不见了,那就是那条线app=QtWidgets.QApplication(sys.argv)

这一行是必需的,因为每个PyQt5应用程序都必须创建一个application对象。sys.argv参数是命令行中的参数列表。

现在我们必须创建应用程序的主循环。事件处理从这一点开始。app.exec_()方法运行我们的应用程序,然后提供一个干净的出口。在

现在把所有这些放在一起:import sys

from PyQt5 import QtWidgets

app=QtWidgets.QApplication(sys.argv)

window=QtWidgets.QWidget()

vbox=QtWidgets.QVBoxLayout()

text_1=QtWidgets.QLineEdit()

text_2=QtWidgets.QLineEdit()

run_btn=QtWidgets.QPushButton("run")

text_3=QtWidgets.QLineEdit()

def main():

data_1=text_1.text()

data_2=text_2.text()

text_3.setText(str(int(data_1)+int(data_2)))

run_btn.clicked.connect(main)

vbox.addWidget(text_1)

vbox.addWidget(text_2)

vbox.addWidget(run_btn)

vbox.addWidget(text_3)

window.setLayout(vbox)

window.show()

sys.exit(app.exec_())

这将使UI窗口如下所示:

希望有帮助。

如有问题请发表意见。

编码快乐!在


http://www.niftyadmin.cn/n/889928.html

相关文章

python魔术方法__getitem__解析

代码示例1: some_item some_object[idx]等价于 some_item some_object.__getitem__(idx)这个方法的参数idx就是你在[]之间给定的idx。这其实是对operator的一种overload。 代码示例2: class Data:def __init__(self,id,address) -> None:self.i…

pythonflask接口开发处理多线程请求_flask 源码浅析(flask 如何处理请求(多线程,多进程,IO多路复用))...

之前有阅读过tornado 底层的实现,tornado 为了解决C10K 问题(没听说过C10K问题的请查看: http://www.360doc.com/content/13/0522/18/1542811_287328391.shtml),在Linux 平台下是使用了epoll(python2.6 开始支持epoll),unix 平台下 tornado 使…

斐波那契数列题型汇总

(注:暂时先记录这些问题,后期会持续更新) 斐波那契数列介绍 特点:头两项均为1,后面任一项都是其前两项之和。 程序在计算中需要用两个变量存储最近产生的两个序列值,且产生了新数据后&#xff0…

python魔术方法__setattr__、__getattr__解析

代码示例: class AttrDict(dict):def __getattr__(self, key):print (called " __getattr__" )return self[key]def __setattr__(self, key, value):print (called "__setattr__" )if key in self.__dict__:self.__dict__[key] valueelse:sel…

通话过程中显示呼叫失败_iphone怎么总是打电话出现呼叫失败求大神解救

2019-01-09手机刷机失败怎么解救导致酷派 8750刷机失败的原因:1、酷派 8750的Recovery版本不对有的机友用官方Recovery去刷第三方ROM,是无法刷入的。另外,较为老版本的Recovery无法兼容一些新的刷机脚本,会导致刷机无法执行&#…

记账类问题汇总

&#xff08;注&#xff1a;暂时先记录这些问题&#xff0c;后期会持续更新&#xff09; 1&#xff0c;用函数实现财务现金记账 #include<stdio.h> float cash; //定义全局变量&#xff0c;保存现金余额 int main(void) {int choice;float value;void income(float numb…

Pytorch多显卡训练

参考链接&#xff1a;https://blog.csdn.net/leviopku/article/details/109318226

2016年第七届蓝桥杯C/C++B组省赛题目解析

题目1&#xff1a;煤球数目 有一堆煤球&#xff0c;堆成三角棱锥形。具体&#xff1a;第一层放1个&#xff0c;第二层3个&#xff08;排列成三角形&#xff09;&#xff0c;第三层6个&#xff08;排列成三角形&#xff09;&#xff0c;第四层10个&#xff08;排列成三角形&…