今天兴之所至,来写一写关于程序返回值的问题。普通的py程序就不用多说了,sys.exit(result),result就是你想返回的返回值啦。我们今天来讲讲用PyQt5写的带界面的程序如何设置返回值的问题。
1. 先画一个简单的界面,放置两个Button,代表着两个返回值。(界面怎么画就不用多说了)
2. 调用此界面
import sys
from PyQt5.QtWidgets import QApplication, QWidget
from ui_button import Ui_Form
class QmyWidget(QWidget):
def __init__(self, parent=None):
super().__init__(parent) # 调用父类构造函数
self.ui = Ui_Form() # 创建UI对象
self.ui.setupUi(self) # 构造UI
if __name__ == '__main__':
app = QApplication(sys.argv) # 创建app
form = QmyWidget()
form.show()
sys.exit(app.exec_())
这是一个最简单调用UI的程序了。
前提条件准备好了之后,现在涉及到返回值的问题。我们先来看两个函数sys.exit()和app.exec_()。
其实在这个程序里面即使不要sys.exit()这个函数也不会有任何影响。
sys.exit()函数括号里面的参数就是程序运行完之后返回的返回值。
app.exec_()是指程序一直运行到所有窗口关闭,不然会一直循环。当所有窗口关闭时app.exec_()的值是0。所以sys.exit(0)导致程序运行完毕的返回值就一直是0。
所以,想要取得不同的返回值,那么app.exec_()和sys.exit()需要分开。看下面的例子。
import sys
from PyQt5.QtWidgets import QApplication, QWidget
from ui_button import Ui_Form
class QmyWidget(QWidget):
def __init__(self, parent=None):
super().__init__(parent) # 调用父类构造函数
self.ui = Ui_Form() # 创建UI对象
self.ui.setupUi(self) # 构造UI
self.ui.pushButton.clicked.connect(self.return\_pass)
self.ui.pushButton\_2.clicked.connect(self.return\_fail)
def return\_pass(self):
global result
result = 0
self.close()
def return\_fail(self):
global result
result = 1
self.close()
if __name__ == '__main__':
result = 0
app = QApplication(sys.argv) # 创建app
form = QmyWidget()
form.show()
app.exec_()
sys.exit(result)
经过一下简单的处理,当你点击的FAIL按钮时,程序会返回1,当你点击PASS按钮时,程序会返回0。
手机扫一扫
移动阅读更方便
你可能感兴趣的文章