Python QTextEdit不打印文本

Python QTextEdit不打印文本,python,printing,pyqt4,qtextedit,Python,Printing,Pyqt4,Qtextedit,我正在使用PyQt4设计Python程序的接口。现在我想在QTextEdit中打印一个名为“Answare”的东西,但它不打印任何东西。我测试了文本是否存在(请参见print(n_text)),它确实存在 课程概述:将输入一个问题,课程应回答该问题 代码如下: # -*- coding: utf-8 -*- import sys import database from PyQt4 import QtCore, QtGui, uic class RasPi(QtGui.QMainWindow)

我正在使用PyQt4设计Python程序的接口。现在我想在QTextEdit中打印一个名为“Answare”的东西,但它不打印任何东西。我测试了文本是否存在(请参见
print(n_text)
),它确实存在

课程概述:将输入一个问题,课程应回答该问题

代码如下:

# -*- coding: utf-8 -*-
import sys
import database
from PyQt4 import QtCore, QtGui, uic

class RasPi(QtGui.QMainWindow):
    def __init__(self):

        QtGui.QMainWindow.__init__(self)
        self.ui = uic.loadUi('main_window.ui')
        self.ui.setWindowTitle('Fragen an den Raspi')

        self.ui.show()

        self.connect(self.ui.ask, QtCore.SIGNAL("clicked()"), self.reading)

    def reading(self):

        txt = str(self.ui.question.text()).lower()
        database.Base().searching(txt)

    def answere(self, text):

        n_text = QtCore.QString(text)
        print(n_text)
        self.ui.answere.append(n_text)

if __name__=='__main__':

    app = QtGui.QApplication(sys.argv)
    raspi=RasPi()

    sys.exit(app.exec_())
编辑

下面是名为Database.py的第二个类

# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtCore, QtGui, uic
import raspi

class Base(object):

    def searching(self, txt):


        if txt == '':
            n_txt = "Du hast keine Frage gestellt"

        else:

            if txt == ("modell"):
                n_txt = "Bei mir handelt es sich um einen Raspberry Pi B, im allgemeinen werde ich aber auch RasPi B genannt."

            elif txt == ("hardware"):
                n_txt = "CPU: ARM1176JZF-S\nArbeitsspeicher: 512MB\nGPU: Broadcom Dual Core VideoCore IV, OpenGL-ES 1.1/2.0, Full HD 1080p30\nAudio: HDMI (digital); 3,5-mm-Klinkenstecker (analog)\nNetzwerk: 10/100-MBit-Ethernet\nStromversorgung: 5V;Micro-USB-Anschluss (Micro-USB-B)\nSonstiges: 2x USB"

            elif txt == ("software"):
                n_txt = "Ich laufe auf einer Abwandlung von GNU/Linux."

            elif txt == ("passwort"):
                n_txt = "Warum sollte ich dir mein Passwort verraten?\nDas Standart-Passwort ist allerdings raspberry."

            elif txt == ("start"):
                n_txt = "Um das Userinterface zu starten, gib einfach im Terminal startx ein. Ansonsten kann man natürlich auch den Terminal selbst benutzen"

            elif txt == ("daten") or txt == "gewicht":
                n_txt = "Meine Größe beträgt 93x63,5x20. Mit diesen Abmessungen passe ich sogar in einen Geldbeutel\nIch wiege auch nur 40 Gramm."

            elif txt == "konkurenz" or txt == "alternative":
                n_txt = "Es gibt noch den Banana Pi, das Pandaboard, das Cubieboard und viele mehr."

            elif txt == "geschichte" or txt == "lebenslauf": 
                n_txt = "Der Raspberry Pi wurde von der britschischen Raspberry Pi Foundation entwickelt. Er kam anfang 2015 auf den Markt; sein großer Markterfolg wird teils als Revival des bis dahin weitgehend bedeutungslosen Heimcomputers zum Programmieren und Experimentieren angesehen."

            elif txt == "hintergrund": 
                n_txt = "Der RasPi wurde von der Stiftung mit dem Ziel entwickelt, jungen Menschen den Erwerb von Programmier- und Hardwarekenntnissen zu erleichtern."

            elif txt == "nutzen":
                n_txt = "Man kann einen RasPi wie einen ganz normalen Computer nutzen, das einzige worauf zu achten ist, dass die Hardware weniger Leistung bringt. Sie ist vergleichbar mit einem Rechner von 1990.\nHier noch ein paar Nutzungsbeispiele:\n Heimserver\ntragbarer Computer\nWetterstation\nusw."

            elif txt == "kosten":
                n_txt = "Der Preis für einen Raspberry Pi liegt zwischen 20 und 35 USD, dabei kommt es ganz auf das Modell und dessen Ausstattung an."

            else:
                n_txt = "Leider kann ich deine Frage nicht beantworten."

        raspi.RasPi().answere(n_txt)

Base.search
方法中,您有以下行:

    raspi.RasPi().answere(n_txt)
这将创建一个新的、临时的
Raspi
类实例,一旦
ansare()
方法返回,该实例将被删除

您需要做的是尝试将
数据库
模块中的代码与
raspi
模块中的gui代码完全分开

数据库模块应如下所示:

# -*- coding: utf-8 -*-

class Base(object):    
    def searching(self, txt):
        if txt == '':
            n_txt = "Du hast keine Frage gestellt"
        else:
            if txt == ("modell"):
            ...
        return n_txt
# -*- coding: utf-8 -*-
import sys
import database
from PyQt4 import QtCore, QtGui, uic

class RasPi(QtGui.QMainWindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self)
        self.ui = uic.loadUi('main_window.ui')
        self.ui.setWindowTitle('Fragen an den Raspi')
        self.ui.show()
        self.connect(self.ui.ask, QtCore.SIGNAL("clicked()"), self.reading)
        # keep an instance of the database
        self.db = database.Base()

    def reading(self)
        txt = unicode(self.ui.question.text()).lower()
        # get the answer from the database
        ans = self.db.searching(txt)
        # show the answer
        self.answere(ans)

    def answere(self, text):
        self.ui.answere.append(text)

if __name__=='__main__':

    app = QtGui.QApplication(sys.argv)
    raspi = RasPi()
    sys.exit(app.exec_())
raspi
模块应该如下所示:

# -*- coding: utf-8 -*-

class Base(object):    
    def searching(self, txt):
        if txt == '':
            n_txt = "Du hast keine Frage gestellt"
        else:
            if txt == ("modell"):
            ...
        return n_txt
# -*- coding: utf-8 -*-
import sys
import database
from PyQt4 import QtCore, QtGui, uic

class RasPi(QtGui.QMainWindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self)
        self.ui = uic.loadUi('main_window.ui')
        self.ui.setWindowTitle('Fragen an den Raspi')
        self.ui.show()
        self.connect(self.ui.ask, QtCore.SIGNAL("clicked()"), self.reading)
        # keep an instance of the database
        self.db = database.Base()

    def reading(self)
        txt = unicode(self.ui.question.text()).lower()
        # get the answer from the database
        ans = self.db.searching(txt)
        # show the answer
        self.answere(ans)

    def answere(self, text):
        self.ui.answere.append(text)

if __name__=='__main__':

    app = QtGui.QApplication(sys.argv)
    raspi = RasPi()
    sys.exit(app.exec_())

Base.search
方法中,您有以下行:

    raspi.RasPi().answere(n_txt)
这将创建一个新的、临时的
Raspi
类实例,一旦
ansare()
方法返回,该实例将被删除

您需要做的是尝试将
数据库
模块中的代码与
raspi
模块中的gui代码完全分开

数据库模块应如下所示:

# -*- coding: utf-8 -*-

class Base(object):    
    def searching(self, txt):
        if txt == '':
            n_txt = "Du hast keine Frage gestellt"
        else:
            if txt == ("modell"):
            ...
        return n_txt
# -*- coding: utf-8 -*-
import sys
import database
from PyQt4 import QtCore, QtGui, uic

class RasPi(QtGui.QMainWindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self)
        self.ui = uic.loadUi('main_window.ui')
        self.ui.setWindowTitle('Fragen an den Raspi')
        self.ui.show()
        self.connect(self.ui.ask, QtCore.SIGNAL("clicked()"), self.reading)
        # keep an instance of the database
        self.db = database.Base()

    def reading(self)
        txt = unicode(self.ui.question.text()).lower()
        # get the answer from the database
        ans = self.db.searching(txt)
        # show the answer
        self.answere(ans)

    def answere(self, text):
        self.ui.answere.append(text)

if __name__=='__main__':

    app = QtGui.QApplication(sys.argv)
    raspi = RasPi()
    sys.exit(app.exec_())
raspi
模块应该如下所示:

# -*- coding: utf-8 -*-

class Base(object):    
    def searching(self, txt):
        if txt == '':
            n_txt = "Du hast keine Frage gestellt"
        else:
            if txt == ("modell"):
            ...
        return n_txt
# -*- coding: utf-8 -*-
import sys
import database
from PyQt4 import QtCore, QtGui, uic

class RasPi(QtGui.QMainWindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self)
        self.ui = uic.loadUi('main_window.ui')
        self.ui.setWindowTitle('Fragen an den Raspi')
        self.ui.show()
        self.connect(self.ui.ask, QtCore.SIGNAL("clicked()"), self.reading)
        # keep an instance of the database
        self.db = database.Base()

    def reading(self)
        txt = unicode(self.ui.question.text()).lower()
        # get the answer from the database
        ans = self.db.searching(txt)
        # show the answer
        self.answere(ans)

    def answere(self, text):
        self.ui.answere.append(text)

if __name__=='__main__':

    app = QtGui.QApplication(sys.argv)
    raspi = RasPi()
    sys.exit(app.exec_())

是否缺少一些代码?在您显示的代码中没有调用
answere()
的内容。是的,有第二个类叫做Database,我将对其进行编辑。是否缺少一些代码?在您显示的代码中没有调用
answere()
。是的,还有第二个类叫做数据库,我将对其进行编辑。