Я предполагаю, что где-то еще есть код и файл .ui. Похоже на эту строку
Inv_Search.hide()
следует изменить на
self.hide()
Кроме того, я думаю, потому что вам нужно вызывать метод в экземпляре, а не в классе.
self.ui = Ui_Inv_Search()
должно быть
self.ui = Inv_Search()
Вы делаете то же самое с MainWindow
. Здесь немного сложнее, потому что вам нужно будет хранить экземпляр MainWindow
в доступном месте. Хотя вы можете получить доступ к экземпляру MainWindow
через QtWidget.parentWidget
, в Python я предпочитаю просто передать экземпляр в конструктор. Итак
def __init__(self, mainWindow):
self.mainWindow = mainWindow
# ... all the other stuff too
как ваш Inv_Search
конструктор и
self.ui = Inv_Search(self)
# notice the new ^ argument
в вашем MainWindow
конструкторе. А потом
self.mainWindow.setEnabled(True)
в вашем методе класса. Кроме того, ваша подпись аргумента неверна для сигнала clicked
. Используйте
def close_inv_search_form(self, checked=None):
# Need this ^ argument, even if you don't use it.
В действительности, кажется, что функциональность, которую вы пытаетесь достичь, лучше всего подходит для модального диалога, такого как предоставляемый QDialog
, который будет изначально обрабатывать многие эффекты, которые вы считаете ищем.