Я создал кнопку в главном окне, которая при нажатии вызывает окно поиска с виджетами дерева, содержащим строки данных из базы данных MySql. Если я открою окно поиска через .py-файл самостоятельно, он отобразит данные, но когда я открою его через запрограммированную кнопку, данные не будут показаны. Это код программы, который запускает основное окно и создает функцию кнопки, чтобы открыть окно поиска:Данные не отображаются в pyqt UI
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_())
Что я делаю неправильно? И почему он отображает данные, если я открою его сам по себе, но не тогда, когда я его открою так?
Edit:
От 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:
делает окно отображается? – danidee
Как обновляется Student_Search? Я не вижу никакого кода, который выводит информацию из базы данных mysql? Что такое Ui_Student_search? Вы делаете обновление в методе '__init__'? Поскольку вы не вызываете 'Ui_Student_search .__ init__' из' Student_search .__ init__' –
Ui_Student_search - это класс, созданный в файле StudentSearch.py. Я создал функцию UpdateTree(), которая заполнит таблицу в Student_search.py, которую я добавил в вопрос. – DDVlad