求解释代码,Pyqt4相关。

2012-08-06 22:35:09 +08:00
 jazdelu
def main():

app=QtGui.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())

if __name__=='__main__':
main()


最近在看教程学pyqt4的gui编程
想知道每段程序最后面这段代码的意思
如果这里有java大神最好能用java来做个类比。
3687 次点击
所在节点    Python
6 条回复
ayanamist
2012-08-06 22:56:50 +08:00
Python和Java不同。Java有统一的调用接口main函数,所以声明main函数后会自动得到执行。而Python脚本里的所有代码都会立刻得到执行,哪怕是在被import时也一样,所以要限定一下,让某些代码只能直接执行时运行。最后两行就是干这个的。
guoquan
2012-08-07 01:14:18 +08:00
python都得当成脚本来看,就是一行一行执行,main函数也不会天生被调用。

第一行定义一个函数叫main,他做下面三行的事情。
这个时候这三行被定义在函数里但还没调用。
接下来这句就很典型了
如果这个py是被直接执行的主程序,__name__这个内部变量会置为__main__,如果是被import的话,会置为其他的。所以这句话是说如果当前被当作主程序调用的话,就执行刚刚定义的main函数。
simapeng
2012-08-07 01:51:43 +08:00
app=QtGui.QApplication(sys.argv)是定义一个QApplication,每个程序都必须有这个对象,app.exec_()是启动消息分发机制,类似于winmain里的消息分发机制。QT里每个widget都可以直接show,测试起来较为方便。
wecing
2012-08-07 12:54:32 +08:00
lz问的问题跟pyqt没关系……
jazdelu
2012-08-07 19:45:23 +08:00
@guoquan 稍微有点理解了。
hanf
2012-08-08 11:46:52 +08:00
python 是脚本,脚本是从头到尾执行的(如果可以执行的话)
java 不是脚本,有标准入口

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/44431

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX