Первый раз столкнулся с pyQT... Задача состоит вот в чем: скрипт запуска импортирует класс form1 (отрисовывается окно с кнопкой), нужно при нажатии на кнопку отрисовать(в классе form1 при нажатии на кнопку выполняется функция Conf_Connection, которая по моему разумению должна выполнить класс form2) окно, описаное в классе form2. Код что я привел ниже не работает... а точнее при закрытии второго окна, описаного в классе form2 закрывается все, а это не желательно. Подскажите новичку....
Скрипт запуска
| Код | import sys from form1 import *
app=QApplication(sys.argv) QObject.connect(app,SIGNAL("lastWindowClosed()"),app,SLOT("quit()")) Form=Form1() app.setMainWidget(Form) Form.show() app.exec_loop()
|
Класс form1
| Код | # -*- coding: utf-8 -*- from qt import * import sys from form2 import *
class Form1(QMainWindow):
def Conf_Connection(self):
con = QApplication(sys.argv) w = Form2() con.setMainWidget(w) w.show() con.exec_loop()
def __init__(self,parent = None,name = None,fl = 0): QMainWindow.__init__(self,parent,name,fl) self.statusBar()
if not name: self.setName("Form1")
self.setCentralWidget(QWidget(self,"qt_central_widget"))
self.pushButton1 = QPushButton(self.centralWidget(),"pushButton1") self.pushButton1.setGeometry(QRect(220,169,104,24))
self.languageChange()
self.resize(QSize(600,480).expandedTo(self.minimumSizeHint())) self.clearWState(Qt.WState_Polished) self.connect(self.Connect_Conf_But,SIGNAL("clicked()"),self.Conf_Connection)
def languageChange(self): self.setCaption(self.__tr("Form1")) self.pushButton1.setText(self.__tr("pushButton1"))
def __tr(self,s,c = None): return qApp.translate("Form1",s,c)
|
Класс form2
| Код | # -*- coding: utf-8 -*- from qt import *
class Form2(QWidget): def __init__(self,parent = None,name = None,fl = 0): QWidget.__init__(self,parent,name,fl)
if not name: self.setName("Form1")
self.pushButton1 = QPushButton(self,"pushButton1") self.pushButton1.setGeometry(QRect(210,190,104,24))
self.languageChange()
self.resize(QSize(600,480).expandedTo(self.minimumSizeHint())) self.clearWState(Qt.WState_Polished)
def languageChange(self): self.setCaption(self.__tr("Form1")) self.pushButton1.setText(self.__tr("pushButton1"))
def __tr(self,s,c = None): return qApp.translate("Form1",s,c)
|
|