zoukankan      html  css  js  c++  java
  • 第二十九篇 -- PY程序返回值问题

    今天兴之所至,来写一写关于程序返回值的问题。普通的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。

  • 相关阅读:
    weibo4j中的 jar解释
    Android使用系统Intent实现分享功能及将应用加入分享列表++分享邮箱实现
    Android ListView 技巧 (一) Android ListView Header
    [Android]使用AChartEngine画柱状图 .
    【TCPIP】握手挥手详解
    python : import this. 如此幽默,让人不得不爱
    Forbidden (403) CSRF verification failed. Request aborted.
    Django修改model如何同步数据库
    程序员的7种武器【转】
    Django Admin 录入中文错误解决办法
  • 原文地址:https://www.cnblogs.com/smart-zihan/p/14335177.html
Copyright © 2011-2022 走看看