#-*- coding:utf-8 -*-
from PyQt5 import QtCore, QtGui, QtPrintSupport, QtWidgets
class MyWindow(QtWidgets.QWidget):
def __init__(self,parent=None):
QtWidgets.QWidget.__init__(self,parent)
self.label=QtWidgets.QLabel("Привет, мир!")
self.label.setAlignment(QtCore.Qt.AlignCenter)
self.btnQuit=QtWidgets.QPushButton("&Закрыть окно")
self.vbox=QtWidgets.QVBoxLayout()
self.vbox.addWidget(self.label)
self.vbox.addWidget(self.btnQuit)
self.setLayout(self.vbox)
self.btnQuit.clicked.connect(sys.exit)
if __name__=="__main__":
import sys
app=QtWidgets.QApplication(sys.argv)
window=MyWindow()
window.setWindowTitle("ООП-стиль создания окна")
window.resize(300,70)
window.show()
sys.exit(app.exec_())
Этот модуль срабатывает без ошибок.
Вот основная программа,куда этот модуль импортируется :
#-*- coding:utf-8 -*-
from PyQt5 import QtCore, QtGui, QtPrintSupport, QtWidgets
import MyWindow
class MyDialog(QtWidgets.QDialog):
def __init__(self,parent=None):
QtWidgets.QDialog.__init__(self,parent)
self.myWidget=MyWindow.MyWindow()
self.myWidget.vbox.setMargin(0)
self.button=QtWidgets.QPushbutton("Изменить надпись")
mainBox=QtWidgets.QVBoxLayout()
mainBox.addWidget(self.myWidget)
mainBox.addWidget(self.button)
self.setLayout(mainBox)
self.btnQuit.clicked.connect(sys.exit)
def on_clicked(self):
self.myWidget.label.setText("Новая надпись")
self.button.setDisabled(True)
if __name__=="__main__":
import sys
app=QtWidgets.QApplication(sys.argv)
window=MyDialog()
window.setWindowTitle("Преимущество ООП-стиля")
window.resize(300,100)
window.show()
sys.exit(app.exec_())
И вот такую ошибку он выдает при исполнении:
Traceback (most recent call last):
File "C:\Python33\test1.pyw", line 30, in <module>
window=MyDialog()
File "C:\Python33\test1.pyw", line 11, in __init__
self.myWidget=MyWindow.MyWindow()
File "C:\Python33\MyWindow.py", line 15, in __init__
self.btnQuit.clicked.connect(sys.exit)
NameError: global name 'sys' is not defined
пытаюсь повторить пример из книги Прохоренок “Python и PyQt.Разработка приложений”.
подскажите пожалуйста,в чем ошибка.