Portál AbcLinuxu, 19. dubna 2024 18:35


Dotaz: PyQt4 předání informace z jednoho okna (třídy) do druhého

27.2.2011 18:29 Jan Rozhon
PyQt4 předání informace z jednoho okna (třídy) do druhého
Přečteno: 77×
Odpovědět | Admin
Zdravím,

v pythonu se považuji za začátečníka a při prvním pokusu o tvorbu grafické aplikace jsem narazil na problém se kterým si nevím rady. Využívám 2 třídy - MyForm a filepickupform, přičemž z druhé volám funkci definovanou v první. Konkrétně v druhém okně (třídě) sbírám informace do QTreeWidgetu ve třídě první, vše se zdá v pohodě, žádná chybová hláška neproběhne, přesto se do QTree Widgetu nic nezapíše. Zkoušel jsem volat zapisovací funkci zevnitř první třídy a tam fungovala podle představ. Mohl byste mě někdo nasměrovat k řešení? Děkuji.

Příslušná část kódu vypadá takto:

class MyForm(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.ui = Ui_Form()
        self.ui.setupUi(self)
        self.prefill()
        QtCore.QObject.connect(self.ui.pushButton_saveconfig, QtCore.SIGNAL("clicked()"), self.store_config )
        QtCore.QObject.connect(self.ui.pushButton_add, QtCore.SIGNAL("clicked()"), self.add_file )

    def add_entry(self,path,name,desc,broadcast):
        print("jsem tu")
        item = QtGui.QTreeWidgetItem([path,name,desc,broadcast])
        self.ui.treeWidget.addTopLevelItem(item)             #zde se nic nestane

class filepickupform(QtGui.QWidget):
    def __init__(self):
        QtGui.QWidget.__init__(self)
        self.ui = Ui_filepickupform()
        self.ui.setupUi(self)
        QtCore.QObject.connect(self.ui.pushButton_choosefile, QtCore.SIGNAL("clicked()"), self.choose_file)
        QtCore.QObject.connect(self.ui.pushButton_ok, QtCore.SIGNAL("clicked()"), self.fileinfo_send_exit)

    def fileinfo_send_exit(self):
        filen=self.ui.lineEdit_file.text()
        name=self.ui.lineEdit_name.text()
        desc=self.ui.lineEdit_desc.text()
        broadcastedat='aaa'  
        self.close()
        MyForm().add_entry(filen,name,desc,broadcastedat)   #zde volam funkci

Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Na otázku zatím nikdo bohužel neodpověděl.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.