QTextEditor 没有与文本相关的属性
QTextEditor has no attribute related to text
我是 python 的新手,甚至是 PyQt4 的新手。我使用 QT 设计器创建了这个 GUI
我已经将文件从 .ui 转换为 .py 文件。我 运行 遇到的问题是,在我的代码中,它没有获取用户在第一个文本编辑器框中输入的数据,而是收到此错误消息。
我也查找了 .plainText 并尝试使用它,但我也无法使用它。
import sys
from Calculator import *
class Calc(QtGui.QMainWindow):
def __init__(self, parent = None):
QtGui.QWidget.__init__(self, parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
QtCore.QObject.connect(self.ui.calc_payment, QtCore.SIGNAL('clicked()'), self.calculate)
def calculate(self):
if len(self.ui.Mortgage_value.text())!=0:
q = int(self.ui.Mortgage_value.text())
else:
q = 0
if len(self.ui.tax_rate.text())!=0:
r = int(self.ui.tax_rate.text())
else:
r = 0
if len(self.ui.years.text())!=0:
y = int(self.ui.years.text())
else:
y = 0
taxrate = r / 12
time = y * 12
total = q / ((1 - ((1 + r)**-y))/ r)
#if (calc_payment == 'clicked()'):#test
self.ui.results_window.setText("Monthly Payment: " +int(total))#was str
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = Calc()
myapp.show()
sys.exit(app.exec_())
感谢所有提供的信息。
谢谢。
QTextEdit没有text()方法,因为它是一个可以渲染的编辑器html,它有2个方法:
第一个 returns 纯文本,第二个 HTML 格式。在你的情况下,使用第一种方法:
if self.ui.Mortgage_value.toPlainText() != "":
q = int(self.ui.Mortgage_value.toPlainText())
注意:虽然我建议使用 QLineEdit 而不是 QTextEdit,因为在 QTextEdit 的情况下,它有几行,你想如何将它转换为数字可能会导致问题,此外 QLineEdit 支持像 QIntValidator 这样的验证器,它可以帮助你不数字有问题。
我是 python 的新手,甚至是 PyQt4 的新手。我使用 QT 设计器创建了这个 GUI
我已经将文件从 .ui 转换为 .py 文件。我 运行 遇到的问题是,在我的代码中,它没有获取用户在第一个文本编辑器框中输入的数据,而是收到此错误消息。
我也查找了 .plainText 并尝试使用它,但我也无法使用它。
import sys
from Calculator import *
class Calc(QtGui.QMainWindow):
def __init__(self, parent = None):
QtGui.QWidget.__init__(self, parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
QtCore.QObject.connect(self.ui.calc_payment, QtCore.SIGNAL('clicked()'), self.calculate)
def calculate(self):
if len(self.ui.Mortgage_value.text())!=0:
q = int(self.ui.Mortgage_value.text())
else:
q = 0
if len(self.ui.tax_rate.text())!=0:
r = int(self.ui.tax_rate.text())
else:
r = 0
if len(self.ui.years.text())!=0:
y = int(self.ui.years.text())
else:
y = 0
taxrate = r / 12
time = y * 12
total = q / ((1 - ((1 + r)**-y))/ r)
#if (calc_payment == 'clicked()'):#test
self.ui.results_window.setText("Monthly Payment: " +int(total))#was str
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = Calc()
myapp.show()
sys.exit(app.exec_())
感谢所有提供的信息。
谢谢。
QTextEdit没有text()方法,因为它是一个可以渲染的编辑器html,它有2个方法:
第一个 returns 纯文本,第二个 HTML 格式。在你的情况下,使用第一种方法:
if self.ui.Mortgage_value.toPlainText() != "":
q = int(self.ui.Mortgage_value.toPlainText())
注意:虽然我建议使用 QLineEdit 而不是 QTextEdit,因为在 QTextEdit 的情况下,它有几行,你想如何将它转换为数字可能会导致问题,此外 QLineEdit 支持像 QIntValidator 这样的验证器,它可以帮助你不数字有问题。