我试着运行一本书《用Python和QT快速GUI编程》中的一个例子,得到了一条错误消息。在
import sys
from math import *
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class Form(QDialog):
def __init__(self,parent = None):
super(Form,self).__init__(parent)
self.browser = QTextBrowser()
self.lineedit = QLineEdit("Type an Expression and press enter")
self.lineedit.selectAll()
layout = QBoxLayout()
layout.addWidget(self.browser)
layout.addWidget(self.lineedit)
self.setLayout(layout)
self.lineedit.setFocus()
self.connect(self.lineedit, SIGNAL("returnPressed()"),self.UpdateGUI)
self.setWindowTitle("Ryans App")
def UpdateGUI(self):
try
text = self.lineedit.text()
self.browser.append("%s = <b>%s</b>" % (text,eval(text)))
except:
self.browser.append("<font color=red>%s is Invalid!</font>" % text )
app = QApplication(sys.argv)
form = Form()
form.show()
app.exec_()
我得到的线索是:
^{pr2}$我不明白为什么创建Form对象需要一个参数,因为我正试图从QDialog继承。。。我是不是在语法上遗漏了一点微妙之处?在
创建
QBoxLayout
时,需要指定方向(例如QBoxLayout.LeftToRight
)和可选的父对象(在本例中,self
应该作为父对象工作)。 这些应该添加到您的layout = QBoxLayout()
行。在我的版本改用QVBoxLayout:
我的理解是,由于它垂直排列小部件,.LeftToRight和parent不是严格必需的。在
我使用的是图书网站上最新的Python2.6代码归档。在
相关问题 更多 >
编程相关推荐