PyQT - AttributeError: 'Ui_Form' object has no attribute 'output_text'

Sekcia: Programovanie 09.04.2017 | 17:07
Avatar BIBIBO   Návštevník

Ahojte, nejako tomu nechapem, co je atribut resp. ako pristupovat k Widgetom. Mam dva python moduly. Jeden sa vola GPS.py a druhy comm.py. Potrebujem, aby funkcia uart_rx (comm.py) pridala text do output_text (gps.py). Skonci to vsak chybou AttributeError: 'Ui_Form' object has no attribute 'output_text'. Prosim, poradite mi ?


gps.py

from PyQt4 import QtCore, QtGui
import comm

       

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    def _fromUtf8(s):
        return s

try:
    _encoding = QtGui.QApplication.UnicodeUTF8
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig)

class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName(_fromUtf8("Form"))
        Form.resize(796, 683)
        self.output_text = QtGui.QTextEdit(Form)
        self.output_text.setGeometry(QtCore.QRect(10, 13, 761, 461))
        self.output_text.setObjectName(_fromUtf8("output_text"))
        self.widget = QtGui.QWidget(Form)
        self.widget.setGeometry(QtCore.QRect(10, 500, 761, 33))
        self.widget.setObjectName(_fromUtf8("widget"))
        self.horizontalLayout = QtGui.QHBoxLayout(self.widget)
        self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
        self.send = QtGui.QPushButton(self.widget)
        self.send.setObjectName(_fromUtf8("send"))
        self.horizontalLayout.addWidget(self.send)
        self.tr_send = QtGui.QLineEdit(self.widget)
        self.tr_send.setObjectName(_fromUtf8("tr_send"))
        self.horizontalLayout.addWidget(self.tr_send)
        self.send.raise_()
        self.tr_send.raise_()
        self.output_text.raise_()
        self.output_text.raise_()
        
        self.send.clicked.connect(comm.uart_rx)
      

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        Form.setWindowTitle(_translate("Form", "Form", None))
        self.send.setText(_translate("Form", "Send", None))


if __name__ == "__main__":
    import sys
    app = QtGui.QApplication(sys.argv)
    Form = QtGui.QWidget()
    ui = Ui_Form()
    ui.setupUi(Form)
    Form.show()
    sys.exit(app.exec_())

comm.py


import serial
import gps


def uart_tx():
        
    if (ser.isOpen()):
        print "Open"
            
def uart_rx():
    try:
        ser = serial.Serial('/dev/ttyACM0')
        ser.write("l\n")
        
    except:
        print "Error"
    
     
    while ser.isOpen():
        tmp = ser.read(100)
        print tmp
        ui = gps.Ui_Form()
        ui.output_text.append(tmp) 
    
    • RE: PyQT - AttributeError: 'Ui_Form' object has no attribute 'output_text' 09.04.2017 | 18:22
      Avatar bedňa LegacyIce-antiX  Administrátor

      Jako v Pythone som napísal tri riadky a to doslovne, takže ma ber s rezervou.

      Neinicializuješ objekt v comm.py. V gps.py to robíš. Takže nemáš kde do vidgetu zapisovať, keď neexistuje.

          app = QtGui.QApplication(sys.argv)
          Form = QtGui.QWidget()
          ui = Ui_Form()
          ui.setupUi(Form)
          Form.show()
      Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
      • RE: PyQT - AttributeError: 'Ui_Form' object has no attribute 'output_text' 09.04.2017 | 18:35
        Avatar Bibibo   Návštevník

        Ahoj,

        diky. Pomohlo to. Vedel by si mi doporucit nejaku literaturu kde by som si vedel o tom viac precitat ?

        • RE: PyQT - AttributeError: 'Ui_Form' object has no attribute 'output_text' 09.04.2017 | 19:32
          Avatar bedňa LegacyIce-antiX  Administrátor

          Neviem jaký máš level a kde chceš začať.

          Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
          • RE: PyQT - AttributeError: 'Ui_Form' object has no attribute 'output_text' 09.04.2017 | 20:46
            Avatar Bibibo   Návštevník

            Zaklady nejake mam, ale to PyQT moc nechapem.

            • RE: PyQT - AttributeError: 'Ui_Form' object has no attribute 'output_text' 09.04.2017 | 21:07
              Avatar bedňa LegacyIce-antiX  Administrátor

              Tak potom toto by ťa mohlo nasmerovať.

              Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
              • RE: PyQT - AttributeError: 'Ui_Form' object has no attribute 'output_text' 09.04.2017 | 21:09
                Avatar bedňa LegacyIce-antiX  Administrátor

                Je to staršie PyQT4, pre PyQT5 si už pozri oficiálnu dokumentáciu ktorú nájdeš aj v zdrojoch tvojej distribúcie.

                Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
              • RE: PyQT - AttributeError: 'Ui_Form' object has no attribute 'output_text' 09.04.2017 | 21:12
                Avatar bedňa LegacyIce-antiX  Administrátor

                Ešte si pozri toto vlákno. Dobré IDE vie pomôcť.

                Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
    • RE: PyQT - AttributeError: 'Ui_Form' object has no attribute 'output_text' 10.04.2017 | 13:41
      Avatar trevor   Návštevník

      Nájdi si knihu Rapid GUI Programming with Python and Qt od Mark Summerfield.

      • RE: PyQT - AttributeError: 'Ui_Form' object has no attribute 'output_text' 10.04.2017 | 19:33
        Avatar Bibibo   Návštevník

        Diky vsetkym. Pozriem to.

        • RE: PyQT - AttributeError: 'Ui_Form' object has no attribute 'output_text' 10.04.2017 | 20:58
          Avatar bedňa LegacyIce-antiX  Administrátor

          No a hlavne sa hocikedy obráť s problémom, od toho tu to fórum je :-)

          Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
          • RE: PyQT - AttributeError: 'Ui_Form' object has no attribute 'output_text' 10.04.2017 | 21:44
            Avatar Bibibo   Návštevník

            No tak toto si ma potesil. Som rad, ze sa mozem na niekoho obratit. Robim amatersky GPS tracker pre holuby a teraz robim k tomu nejake GUI

            • RE: PyQT - AttributeError: 'Ui_Form' object has no attribute 'output_text' 10.04.2017 | 22:13
              Avatar bedňa LegacyIce-antiX  Administrátor

              OK, tak až máš ďalší problém, kľudne si založ novú tému.

              Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org