Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Python для новичков
  • » Как в PyQt5 присвоить значение нажатой кнопке? а именно кнопке btn так чтоб при нажатии выполнялось close ? [RSS Feed]

#1 Окт. 5, 2017 17:09:46

salvoronis
Зарегистрирован: 2017-10-05
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Как в PyQt5 присвоить значение нажатой кнопке? а именно кнопке btn так чтоб при нажатии выполнялось close ?

 import sys
from PyQt5.QtWidgets import QWidget, QMessageBox, QApplication, QLabel, QPushButton
 
class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()
    def initUI(self):
    	ask = QLabel('123',self)
    	ask.move(1,1)
    	btn = QPushButton ('NET',self)
    	self.setGeometry(300, 300, 250, 150)
    	self.setWindowTitle('Message box')
    	self.show()
    def closeEvent(self, event):
        reply = QMessageBox.question(self, 'Message', "Are you sure to quit?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
        if reply == QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()        
        
        
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

Офлайн

#2 Окт. 6, 2017 10:00:43

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Как в PyQt5 присвоить значение нажатой кнопке? а именно кнопке btn так чтоб при нажатии выполнялось close ?

Это что, шутка юмора такая?
В вашем случае достаточно btn.clicked.connect(self.close)
Но если подходить формально, чтобы соединить кнопку с вашей функцией, то даже не знаю что сказать.
Вызвать вы ее можете, только вот она нифига вам не закроет окно, поскольку сам по себе вызов closeEvent() не закрывет окно.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Окт. 6, 2017 10:01:08)

Офлайн

#3 Окт. 7, 2017 12:16:55

salvoronis
Зарегистрирован: 2017-10-05
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Как в PyQt5 присвоить значение нажатой кнопке? а именно кнопке btn так чтоб при нажатии выполнялось close ?

Не подскажете, какие события могут быть вместо close в btn.clicked.connect(self.close). Да и вообще какие есть события, может я плохо искал, но ничего не нашел

Офлайн

#4 Окт. 7, 2017 12:27:42

salvoronis
Зарегистрирован: 2017-10-05
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Как в PyQt5 присвоить значение нажатой кнопке? а именно кнопке btn так чтоб при нажатии выполнялось close ?

Можно ли скомпилировать файл.py в файл.ехе, чтоб при включении он работал без установленного python3 и PyQt5?
Скомпилировать на убунту чтоб открывалась на винде

Отредактировано salvoronis (Окт. 7, 2017 13:00:34)

Офлайн

#5 Окт. 7, 2017 15:12:58

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Как в PyQt5 присвоить значение нажатой кнопке? а именно кнопке btn так чтоб при нажатии выполнялось close ?

salvoronis
Не подскажете, какие события могут быть вместо close в btn.clicked.connect(self.close)
close это не событие, close это метод (или слот). Cобытие это btn.clicked. Вы соединяете событие нажатия кнопки с действием self.close. Соответвнно когда происходит событие (кнопка нажата) выполняеться действие (в данном случае выход из программы, а вот нифига, закрытие текущего окна, а программа завершаетсяя когда не остаеться ни одного открытого окна.)
все атрибуты и методы виджета можно найти на офф сайте. Например по КуВиджету http://doc.qt.io/qt-5/qwidget.html
по куЕвентам - http://doc.qt.io/qt-5/qevent.html

salvoronis
Можно ли скомпилировать файл.py в файл.ехе, чтоб при включении он работал без установленного python3 и PyQt5?
Скомпилировать на убунту чтоб открывалась на винде
я вроде тут http://python.su/forum/topic/33664/ уже давал более-менее развернутый ответ.
Единственно ддобавлю: pyinstaller вроде умеет под одной системой собирать бинарник для другой.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

  • Начало
  • » Python для новичков
  • » Как в PyQt5 присвоить значение нажатой кнопке? а именно кнопке btn так чтоб при нажатии выполнялось close ?[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version