Найти - Пользователи
Полная версия: Закрыть окно при щелчке выши по нему
Начало » GUI » Закрыть окно при щелчке выши по нему
1
hcfnhmrx@sharklasers.com
Как мне реализовать закрытие окно, когда по нему щелкаешь мышкой?
vrabey
hcfnhmrx@sharklasers.com
tkinter, wxwidgets, pyqt ???
hcfnhmrx@sharklasers.com
Ой сори, забыл указать. Работаю с PyQt.
Пытался сделать вот так
self.connect(window, QtCore.SIGNAL("clicked()"), window, QtCore.SLOT("close()"))
но не получилось.
vrabey
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
hcfnhmrx@sharklasers.com
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()

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