我在学蟒蛇,我对它很陌生。
http://zetcode.com/gui/pyqt4/firstprograms/
从这个网站,我需要帮助理解代码。
import sys
from PyQt4 import QtGui
def main():
app = QtGui.QApplication(sys.argv)
w = QtGui.QWidget()
w.resize(250, 150)
w.move(300, 300)
w.setWindowTitle('Simple')
w.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()我的问题如下
app = QtGui.QApplication(sys.argv)在代码中,app变量似乎被实际使用了。那么为什么要分配呢?它的目的是什么?对我来说,我们就像窗户一样.我很困惑..。
if __name__ == '__main__':
main()__name__和__main__从何而来?这个if语句的功能是什么?
发布于 2015-02-10 21:22:25
从您引用的页面本身:
每个PyQt4应用程序都必须创建一个应用程序对象。应用程序对象位于QtGui模块中。sys.argv参数是命令行中的参数列表。Python脚本可以从shell中运行。这是一种控制脚本启动的方法。
您需要初始化一个QApplication对象,因为这是Qt处理所有环境的中心。如果您想了解更多这方面的知识,请查看Qt的介绍性文档(如整个项目,而不仅仅是PyQT)。
关于__name__:这是一个基本的python问题;它是加载模块(在本例中,模块是python文件)的名称;__main__是变量在直接运行python文件时获得的神奇值(通过使其可执行并运行它或运行它python pythonfile.py)。
发布于 2015-02-10 21:22:53
如果您尝试在没有这一行的情况下运行,您会找到答案:如果没有首先存在应用程序对象,就不能创建GUI组件(在本例中是窗口)。
简而言之,它是所有其他Qt对象所在的主对象,它控制事件循环。您可以使用exec_()调用启动事件循环,它告诉app对象使用迄今为止为其定义的所有内容运行。
发布于 2015-02-10 21:23:20
if __name__ == "__main__":
# do something 是一个通用代码块,用于测试脚本是以“main”形式运行还是作为模块导入。如果此代码是由另一个脚本导入的,则该块将不会运行。
https://stackoverflow.com/questions/28441965
复制相似问题