Ich habe eine Schaltfläche in einem Hauptfenster erstellt, die beim Klicken ein Suchfenster mit einem Baum-Widget mit Datenzeilen aus einer MySql-Datenbank öffnet. Wenn ich das Suchfenster über die .py-Datei selbst öffnen würde, zeigt es die Daten an, aber wenn ich es über die Schaltfläche, die ich programmiert habe, öffne, werden keine Daten angezeigt. Dies ist der Code für das Programm, das das Hauptfenster läuft und erstellt eine Schaltfläche Funktion das Suchfenster zu öffnen:Daten werden nicht in pyqt UI angezeigt
from PyQt4 import QtGui
from MainMenu import Ui_MainWindow
from StudentSearch import Ui_Student_search
import DB_manager_students
class MainWindow(Ui_MainWindow):
def __init__(self, parent=None):
QtGui.QMainWindow.__init__(self, parent)
self.setupUi(self)
self.pushButton_3.clicked.connect(self.handleButton)
self.window2 = None
def handleButton(self):
if self.window2 is None:
self.window2 = Student_search()
self.window2.show()
class Student_search(Ui_Student_search):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.setupUi(self)
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
Was mache ich falsch? Und warum wird es die Daten anzeigen, wenn ich es selbst öffne, aber nicht, wenn ich es so öffne?
Edit:
Von Student_search.py
class Ui_Student_search(QtGui.QWidget):
def __init__(self, database, tableName):
QtGui.QWidget.__init__(self)
self.dbu = DB_manager_students.DatabaseUtility(database, tableName)
self.setupUi(self)
self.UpdateTree()
(...)
def UpdateTree(self):
col = self.dbu.GetColumns()
table = self.dbu.GetTable()
for c in range(len(col)):
self.StudentTreeWidget.headerItem().setText(c, col[c][0])
self.StudentTreeWidget.clear()
for item in range(len(table)):
QtGui.QTreeWidgetItem(self.StudentTreeWidget)
for value in range(len(table[item])):
self.StudentTreeWidget.topLevelItem(item).setText(value, str(table[item][value]))
Edit:
tut das Fenster zeigen bis zu füttern? – danidee
Wie wird Student_Search aktualisiert? Ich sehe keinen Code, der Informationen aus einer MySQL-Datenbank abrufen würde? Was ist Ui_Student_search? Machst du das Update in der '__init__' Methode? Weil Sie nicht 'Ui_Student_search .__ init__' von' Student_search .__ init__' aufrufen –
Ui_Student_search ist die Klasse, die in der Datei StudentSearch.py erstellt wurde. Ich habe eine UpdateTree() - Funktion erstellt, die die Tabelle in Student_search.py, die ich der Frage hinzugefügt habe, auffüllt. – DDVlad