Найти - Пользователи
Полная версия: pyQt4. Несколько окон
Начало » GUI » pyQt4. Несколько окон
1
helm2004
Доброго времени суток!!!
Подскажите мне, пожайлуста код, проспейшей программы на pyQt4, так, чтоб можно было, например, в первом была кнопка закрытия этого окна, и когда нажимаешь оно исчезает и появляеться другое окно.
Спасибо!!!
ZZZ
Ну это не тот раздел… А вообще, если возникает такой вопрос, значит не разобрался с принципами PyQt4 и пример тебе ничего не даст. ИМХО.
gmorgunov
Действительно место вопроса - в Gui.:) Но коль наткнулся, можно так:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *

class Widget1(QPushButton):
def __init__(self):
QPushButton.__init__(self)
self.setText(u'Закройся')
self.widget2=QWidget()
self.connect(self, SIGNAL("clicked()"), self.close)

def closeEvent(self,event):
self.widget2.show()
event.accept()
if __name__=='__main__':
app = QApplication(sys.argv)
widget1 = Widget1()
widget1.show()
app.exec_()
В assistant-e или http://www.riverbankcomputing.co.uk/news:
closeEvent() is called when the user closes the widget (or when close() is called).
ZZZ
gmorgunov
self.widget2=QWidget()
Не всегда хорошая мысль…
Всё-таки архитектурно, логически, обычто виджеты-окна связываются за приделами самих окон.
gmorgunov
ZZZ Согласен, можно и попроще: :)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class Widget1(QPushButton):
def __init__(self):
QPushButton.__init__(self,u'Закройся')
def closeEvent(self,event):
widget2.show()
event.accept()
if __name__=='__main__':
app = QApplication(sys.argv)
widget1 = Widget1()
widget2=QWidget()
QObject.connect(widget1, SIGNAL("clicked()"),widget1.close)
widget1.show()
app.exec_()
helm2004
Простите пожайлуста, а как сделать так чтоб сразу после закрытия открывалось второе окно?
Кстати, спраздником Вас!!!
gmorgunov
helm2004
Простите пожайлуста, а как сделать так чтоб сразу после закрытия открывалось второе окно?
Кстати, спраздником Вас!!!
Спасибо, вас тоже. Так оно открывается, проверьте 1-ый вариант(с классами). :)
helm2004
Блин, я “тормосс”, что по-латышки означает “Стремительный”. Спасибо, просто такого примера я в книгах то и не встречал.
gmorgunov
helm2004 Во втором варианте забыл,что при нажатии на крестик надо открыть второе окно, каюсь. :) Подправил пост #5. Теперь оба варианта - то, что вам надо.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB