Найти - Пользователи
Полная версия: Как в PyQt5 присвоить значение нажатой кнопке? а именно кнопке btn так чтоб при нажатии выполнялось close ?
Начало » Python для новичков » Как в PyQt5 присвоить значение нажатой кнопке? а именно кнопке btn так чтоб при нажатии выполнялось close ?
1
salvoronis
 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_())
PEHDOM
Это что, шутка юмора такая?
В вашем случае достаточно btn.clicked.connect(self.close)
Но если подходить формально, чтобы соединить кнопку с вашей функцией, то даже не знаю что сказать.
Вызвать вы ее можете, только вот она нифига вам не закроет окно, поскольку сам по себе вызов closeEvent() не закрывет окно.

salvoronis
Не подскажете, какие события могут быть вместо close в btn.clicked.connect(self.close). Да и вообще какие есть события, может я плохо искал, но ничего не нашел
salvoronis
Можно ли скомпилировать файл.py в файл.ехе, чтоб при включении он работал без установленного python3 и PyQt5?
Скомпилировать на убунту чтоб открывалась на винде
PEHDOM
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 вроде умеет под одной системой собирать бинарник для другой.
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