Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Закрыть окно при щелчке выши по нему [RSS Feed]

#1 Авг. 21, 2013 01:35:41

hcfnhmrx@sharklasers.com
Зарегистрирован: 2013-08-05
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Закрыть окно при щелчке выши по нему

Как мне реализовать закрытие окно, когда по нему щелкаешь мышкой?

Офлайн

#2 Авг. 21, 2013 11:07:19

vrabey
От: Киев
Зарегистрирован: 2013-04-17
Сообщения: 209
Репутация: +  23  -
Профиль   Отправить e-mail  

Закрыть окно при щелчке выши по нему

hcfnhmrx@sharklasers.com
tkinter, wxwidgets, pyqt ???

Отредактировано vrabey (Авг. 21, 2013 11:08:14)

Офлайн

#3 Авг. 21, 2013 11:46:16

hcfnhmrx@sharklasers.com
Зарегистрирован: 2013-08-05
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Закрыть окно при щелчке выши по нему

Ой сори, забыл указать. Работаю с PyQt.
Пытался сделать вот так

self.connect(window, QtCore.SIGNAL("clicked()"), window, QtCore.SLOT("close()"))
но не получилось.

Отредактировано hcfnhmrx@sharklasers.com (Авг. 21, 2013 12:44:46)

Офлайн

#4 Авг. 21, 2013 15:05:21

vrabey
От: Киев
Зарегистрирован: 2013-04-17
Сообщения: 209
Репутация: +  23  -
Профиль   Отправить e-mail  

Закрыть окно при щелчке выши по нему

hcfnhmrx@sharklasers.com
Ой сори, забыл указать. Работаю с PyQt.Пытался сделать вот так
тоже только в начале обучения так что к моим ответам надо относится критически
такие замечания:
класс объекта window должен должен содержать сигнал “clicked()”
из названия объекта понятно что это либо экземпляр класса QWidget либо QMainWindow,а эти классы не содержат сигнала “clicked()”
зато обладают методом:
mousePressEvent(self, event): — вызывается при нажатии кнопки мыши;
и метод можно переопределить и вызвать в нём метод - close() что бы закрыть текущее окно; или метод exit()
или слот quit() чтобы завершить работу приложения
p.s вместе с кодом надо и текст ошибки выкладывать
если на русском почитать то Прохоренок Н.А. - Python 3 и PyQt. Разработка приложений - 2012 + примеры из папки
C:\Python27\Lib\site-packages\PyQt4\examples если в windows

Отредактировано vrabey (Авг. 21, 2013 15:14:26)

Офлайн

#5 Авг. 21, 2013 15:36:50

hcfnhmrx@sharklasers.com
Зарегистрирован: 2013-08-05
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Закрыть окно при щелчке выши по нему

vrabey
p.s вместе с кодом надо и текст ошибки выкладывать
Ошибок не было, просто ни чего не случалось.

vrabey Спасибо тебе за помощь, действительно помогло.
Я делал окно “о программе”, вот код который получился, может кому-то поможет в дальнейшем.

class WindowAbout(QtGui.QWidget):
    def __init__(self, parent):
        QtGui.QWidget.__init__(self, parent=parent)
        self.setWindowTitle(u'О программе')
        self.resize(250, 250)
        self.setWindowFlags(QtCore.Qt.Window | QtCore.Qt.FramelessWindowHint)
        self.setWindowModality(QtCore.Qt.WindowModal)
        pixmap = QtGui.QPixmap("icon/about program1.png")
        pal = self.palette()
        pal.setBrush(QtGui.QPalette.Normal, QtGui.QPalette.Background, QtGui.QBrush(pixmap))
        pal.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Background, QtGui.QBrush(pixmap))
        self.setPalette(pal)
        self.setMask(pixmap.mask())
        self.show()
    def mousePressEvent(self, QMouseEvent):
        self.close()

Отредактировано hcfnhmrx@sharklasers.com (Авг. 21, 2013 15:38:37)

Офлайн

  • Начало
  • » GUI
  • » Закрыть окно при щелчке выши по нему[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version