Уведомления

Группа в Telegram: @pythonsu

#1 Май 9, 2009 00:15:14

helm2004
От: Украина, Винница
Зарегистрирован: 2008-02-27
Сообщения: 630
Репутация: +  9  -
Профиль   Отправить e-mail  

pyQt4. Несколько окон

Доброго времени суток!!!
Подскажите мне, пожайлуста код, проспейшей программы на pyQt4, так, чтоб можно было, например, в первом была кнопка закрытия этого окна, и когда нажимаешь оно исчезает и появляеться другое окно.
Спасибо!!!

Офлайн

#2 Май 9, 2009 02:28:41

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

pyQt4. Несколько окон

Ну это не тот раздел… А вообще, если возникает такой вопрос, значит не разобрался с принципами PyQt4 и пример тебе ничего не даст. ИМХО.



Офлайн

#3 Май 9, 2009 14:02:53

gmorgunov
От:
Зарегистрирован: 2008-10-15
Сообщения: 137
Репутация: +  0  -
Профиль   Отправить e-mail  

pyQt4. Несколько окон

Действительно место вопроса - в 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).



Отредактировано (Май 9, 2009 14:05:30)

Офлайн

#4 Май 9, 2009 17:30:18

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

pyQt4. Несколько окон

gmorgunov
self.widget2=QWidget()
Не всегда хорошая мысль…
Всё-таки архитектурно, логически, обычто виджеты-окна связываются за приделами самих окон.



Офлайн

#5 Май 9, 2009 18:25:19

gmorgunov
От:
Зарегистрирован: 2008-10-15
Сообщения: 137
Репутация: +  0  -
Профиль   Отправить e-mail  

pyQt4. Несколько окон

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_()



Отредактировано (Май 10, 2009 08:37:34)

Офлайн

#6 Май 9, 2009 22:01:39

helm2004
От: Украина, Винница
Зарегистрирован: 2008-02-27
Сообщения: 630
Репутация: +  9  -
Профиль   Отправить e-mail  

pyQt4. Несколько окон

Простите пожайлуста, а как сделать так чтоб сразу после закрытия открывалось второе окно?
Кстати, спраздником Вас!!!

Отредактировано (Май 9, 2009 22:23:43)

Офлайн

#7 Май 9, 2009 22:27:49

gmorgunov
От:
Зарегистрирован: 2008-10-15
Сообщения: 137
Репутация: +  0  -
Профиль   Отправить e-mail  

pyQt4. Несколько окон

helm2004
Простите пожайлуста, а как сделать так чтоб сразу после закрытия открывалось второе окно?
Кстати, спраздником Вас!!!
Спасибо, вас тоже. Так оно открывается, проверьте 1-ый вариант(с классами). :)



Отредактировано (Май 9, 2009 22:39:58)

Офлайн

#8 Май 9, 2009 22:58:46

helm2004
От: Украина, Винница
Зарегистрирован: 2008-02-27
Сообщения: 630
Репутация: +  9  -
Профиль   Отправить e-mail  

pyQt4. Несколько окон

Блин, я “тормосс”, что по-латышки означает “Стремительный”. Спасибо, просто такого примера я в книгах то и не встречал.

Офлайн

#9 Май 10, 2009 08:43:29

gmorgunov
От:
Зарегистрирован: 2008-10-15
Сообщения: 137
Репутация: +  0  -
Профиль   Отправить e-mail  

pyQt4. Несколько окон

helm2004 Во втором варианте забыл,что при нажатии на крестик надо открыть второе окно, каюсь. :) Подправил пост #5. Теперь оба варианта - то, что вам надо.



Отредактировано (Май 10, 2009 08:55:09)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version