У меня есть этот код, я пытаюсь понять, как работать с двумя окнами в PyQt5
from PyQt5.QtWidgets import QMainWindow, QApplication
from PyQt5.uic import loadUi
import sys
class MainUI(QMainWindow):
def __init__(self):
super(MainUI, self).__init__()
# Load interface
loadUi ("window1.ui", self)
self.pushButton.clicked.connect(self.open_window)
self.pushButton_2.clicked.connect(self.disconnect)
def open_window (self):
window2.show()
def close__window (self):
window2.close()
def disable_interface (self):
window2.close()
def disconnect (self):
self.disable_interface()
class SecondUI(QMainWindow):
def __init__(self):
super(SecondUI, self).__init__()
# Load interface
loadUi ("window2.ui", self)
if __name__ == "__main__":
app = QApplication (sys.argv)
window = MainUI()
window2 = SecondUI()
window.show()
app.exec_()
window1.ui и window2.ui не имеют значения.
Этот код работает нормально.
Но в тот момент, когда я добавляю метод Disable_interface в конструктор __init__, как показано ниже, я получаю
NameError: имя 'window2' не определено
На мой взгляд, этого не должно быть происходит, поскольку window2 определяется глобально. Но, очевидно, я ошибаюсь....
Вопрос в том, как мне решить эту проблему, чтобы она работала. Мне нужна эта функция для работы в инициализации...
from PyQt5.QtWidgets import QMainWindow, QApplication
from PyQt5.uic import loadUi
import sys
class MainUI(QMainWindow):
def __init__(self):
super(MainUI, self).__init__()
# Load interface
loadUi ("window1.ui", self)
self.disable_interface()
self.pushButton.clicked.connect(self.open_window)
self.pushButton_2.clicked.connect(self.disconnect)
def open_window (self):
window2.show()
def close__window (self):
window2.close()
def disable_interface (self):
window2.close()
def disconnect (self):
self.disable_interface()
class SecondUI(QMainWindow):
def __init__(self):
super(SecondUI, self).__init__()
# Load interface
loadUi ("window2.ui", self)
if __name__ == "__main__":
app = QApplication (sys.argv)
window = MainUI()
window2 = SecondUI()
window.show()
app.exec_()
Подробнее здесь: https://stackoverflow.com/questions/798 ... qt5-python
Область действия переменной PyQt5 — Python ⇐ Python
Программы на Python
-
Anonymous
1770417727
Anonymous
У меня есть этот код, я пытаюсь понять, как работать с двумя окнами в PyQt5
from PyQt5.QtWidgets import QMainWindow, QApplication
from PyQt5.uic import loadUi
import sys
class MainUI(QMainWindow):
def __init__(self):
super(MainUI, self).__init__()
# Load interface
loadUi ("window1.ui", self)
self.pushButton.clicked.connect(self.open_window)
self.pushButton_2.clicked.connect(self.disconnect)
def open_window (self):
window2.show()
def close__window (self):
window2.close()
def disable_interface (self):
window2.close()
def disconnect (self):
self.disable_interface()
class SecondUI(QMainWindow):
def __init__(self):
super(SecondUI, self).__init__()
# Load interface
loadUi ("window2.ui", self)
if __name__ == "__main__":
app = QApplication (sys.argv)
window = MainUI()
window2 = SecondUI()
window.show()
app.exec_()
window1.ui и window2.ui не имеют значения.
Этот код работает нормально.
Но в тот момент, когда я добавляю метод Disable_interface в конструктор __init__, как показано ниже, я получаю
NameError: имя 'window2' не определено
На мой взгляд, этого не должно быть происходит, поскольку window2 определяется глобально. Но, очевидно, я ошибаюсь....
Вопрос в том, как мне решить эту проблему, чтобы она работала. Мне нужна эта функция для работы в инициализации...
from PyQt5.QtWidgets import QMainWindow, QApplication
from PyQt5.uic import loadUi
import sys
class MainUI(QMainWindow):
def __init__(self):
super(MainUI, self).__init__()
# Load interface
loadUi ("window1.ui", self)
self.disable_interface()
self.pushButton.clicked.connect(self.open_window)
self.pushButton_2.clicked.connect(self.disconnect)
def open_window (self):
window2.show()
def close__window (self):
window2.close()
def disable_interface (self):
window2.close()
def disconnect (self):
self.disable_interface()
class SecondUI(QMainWindow):
def __init__(self):
super(SecondUI, self).__init__()
# Load interface
loadUi ("window2.ui", self)
if __name__ == "__main__":
app = QApplication (sys.argv)
window = MainUI()
window2 = SecondUI()
window.show()
app.exec_()
Подробнее здесь: [url]https://stackoverflow.com/questions/79884634/variable-scope-pyqt5-python[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия