我剛剛開始學習PyQt和GUI編程,並且我從012頁的「用Python和Qt進行快速GUI編程:PyQt編程權威指南」應該顯示一個計算器來計算表達式。 當我運行應用程序主窗口出現,但沒有做任何事情,因爲我複製代碼形式一個衆所周知的pyqt書,這是非常奇怪的。 我使用python的3.4.4和PyQt4的。這是我從書抄代碼:PyQt4 QTextBrowser.append Does not not any output
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 = QVBoxLayout()
layout.addWidget(self.browser)
layout.addWidget(self.lineedit)
self.setLayout(layout)
self.lineedit.setFocus()
self.connect(self.lineedit, SIGNAL("retrunPressed()"),
self.updateUi)
self.setWindowTitle("Calculate")
def updateUi(self):
try:
text= unicode(self.lineedit.text())
self.browser.append("{0} = <b>{1}</b>".format(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_()
這些都是錯誤的,我得到:
Traceback (most recent call last):
文件 「calculator.pyw」,第25行在updateUi 文本= unicode的(self.lineedit.text()) NameError:名稱 '的unicode' 沒有定義
在處理上述例外的,另一個異常:
回溯(最近呼叫最後): 文件「calculator.pyw」,第29行,更新UI 「%s無效!」 %text) UnboundLocalError:分配之前引用的局部變量「文本」
我知道不要求其他人調試我的代碼,但我盡我所能,並且沒有出現。 感謝
謝謝你。我的問題解決了unicode和信號change.can你推薦我一本更新的書,涵蓋pyqt5和python3? –
不幸的是,我不知道有任何完整的pyqt5電子書,但有很多教程和'Qt4'的概念仍然存在,但看看這個鏈接http://stackoverflow.com/questions/20996193/is-there-a-tutorial-specific-for-pyqt5 – danidee
也不會忘記接受我的答案,如果它爲你工作:) – danidee