После нажатия на checkbox можно нажать на f7 и текст кнопки измениться
На форуме нашел вопрос связанный с checkbox я попробовал сделать такую функцию.
После нажатия на checkbox открывается такая возможность как - после нажатия клавиши F7 текст кнопки должен измениться на Hello, но если же галочка не стоит то эта функция не должна работать .
Как это сделать?
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(658, 229)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(260, 110, 201, 51))
self.pushButton.setObjectName("pushButton")
self.checkBox = QtWidgets.QCheckBox(self.centralwidget)
self.checkBox.setGeometry(QtCore.QRect(330, 50, 70, 18))
self.checkBox.setObjectName("checkBox")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 658, 22))
self.menubar.setObjectName("menubar")
self.menu75 = QtWidgets.QMenu(self.menubar)
self.menu75.setObjectName("menu75")
self.menuytr = QtWidgets.QMenu(self.menu75)
self.menuytr.setObjectName("menuytr")
self.menutryr = QtWidgets.QMenu(self.menuytr)
self.menutryr.setObjectName("menutryr")
self.menurtyr = QtWidgets.QMenu(self.menutryr)
self.menurtyr.setObjectName("menurtyr")
self.menutryrt = QtWidgets.QMenu(self.menurtyr)
self.menutryrt.setObjectName("menutryrt")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.actionrtyrty = QtWidgets.QAction(MainWindow)
self.actionrtyrty.setObjectName("actionrtyrty")
self.menutryrt.addAction(self.actionrtyrty)
self.menurtyr.addAction(self.menutryrt.menuAction())
self.menutryr.addAction(self.menurtyr.menuAction())
self.menuytr.addAction(self.menutryr.menuAction())
self.menu75.addAction(self.menuytr.menuAction())
self.menubar.addAction(self.menu75.menuAction())
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.pushButton.setText(_translate("MainWindow", "PushButton"))
self.checkBox.setText(_translate("MainWindow", "CheckBox"))
self.menu75.setTitle(_translate("MainWindow", "75"))
self.menuytr.setTitle(_translate("MainWindow", "ytr"))
self.menutryr.setTitle(_translate("MainWindow", "tryr"))
self.menurtyr.setTitle(_translate("MainWindow", "rtyr"))
self.menutryrt.setTitle(_translate("MainWindow", "tryrt"))
self.actionrtyrty.setText(_translate("MainWindow", "rtyrty"))
class ExampleApp(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
if __name__=="__main__":
app = QtWidgets.QApplication(sys.argv)
window = ExampleApp()
window.show()
sys.exit(app.exec_())
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Попробуйте так:
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(658, 229)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(260, 110, 201, 51))
self.pushButton.setObjectName("pushButton")
self.checkBox = QtWidgets.QCheckBox(self.centralwidget)
self.checkBox.setGeometry(QtCore.QRect(330, 50, 70, 18))
self.checkBox.setObjectName("checkBox")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 658, 22))
self.menubar.setObjectName("menubar")
self.menu75 = QtWidgets.QMenu(self.menubar)
self.menu75.setObjectName("menu75")
self.menuytr = QtWidgets.QMenu(self.menu75)
self.menuytr.setObjectName("menuytr")
self.menutryr = QtWidgets.QMenu(self.menuytr)
self.menutryr.setObjectName("menutryr")
self.menurtyr = QtWidgets.QMenu(self.menutryr)
self.menurtyr.setObjectName("menurtyr")
self.menutryrt = QtWidgets.QMenu(self.menurtyr)
self.menutryrt.setObjectName("menutryrt")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.actionrtyrty = QtWidgets.QAction(MainWindow)
self.actionrtyrty.setObjectName("actionrtyrty")
self.menutryrt.addAction(self.actionrtyrty)
self.menurtyr.addAction(self.menutryrt.menuAction())
self.menutryr.addAction(self.menurtyr.menuAction())
self.menuytr.addAction(self.menutryr.menuAction())
self.menu75.addAction(self.menuytr.menuAction())
self.menubar.addAction(self.menu75.menuAction())
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.pushButton.setText(_translate("MainWindow", "PushButton"))
self.checkBox.setText(_translate("MainWindow", "CheckBox"))
self.menu75.setTitle(_translate("MainWindow", "75"))
self.menuytr.setTitle(_translate("MainWindow", "ytr"))
self.menutryr.setTitle(_translate("MainWindow", "tryr"))
self.menurtyr.setTitle(_translate("MainWindow", "rtyr"))
self.menutryrt.setTitle(_translate("MainWindow", "tryrt"))
self.actionrtyrty.setText(_translate("MainWindow", "rtyrty"))
class ExampleApp(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
self.checkBox.stateChanged.connect(self.checkboxChanged)
def checkboxChanged(self, state):
if not state:
self.pushButton.setText("PushButton")
def keyPressEvent(self, QKeyEvent):
if QKeyEvent.key() == QtCore.Qt.Key_F7 and self.checkBox.isChecked():
self.pushButton.setText("Hello World")
if __name__=="__main__":
app = QtWidgets.QApplication(sys.argv)
window = ExampleApp()
window.show()
sys.exit(app.exec_())
Update
А как сделать так - если я после того как я нажал F7 и после этого нажму еще раз F7 то текст обратно станет Pushbutton, пробовал через else:, не работает
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(658, 229)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(260, 110, 201, 51))
self.pushButton.setObjectName("pushButton")
self.checkBox = QtWidgets.QCheckBox(self.centralwidget)
self.checkBox.setGeometry(QtCore.QRect(330, 50, 70, 18))
self.checkBox.setObjectName("checkBox")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 658, 22))
self.menubar.setObjectName("menubar")
self.menu75 = QtWidgets.QMenu(self.menubar)
self.menu75.setObjectName("menu75")
self.menuytr = QtWidgets.QMenu(self.menu75)
self.menuytr.setObjectName("menuytr")
self.menutryr = QtWidgets.QMenu(self.menuytr)
self.menutryr.setObjectName("menutryr")
self.menurtyr = QtWidgets.QMenu(self.menutryr)
self.menurtyr.setObjectName("menurtyr")
self.menutryrt = QtWidgets.QMenu(self.menurtyr)
self.menutryrt.setObjectName("menutryrt")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.actionrtyrty = QtWidgets.QAction(MainWindow)
self.actionrtyrty.setObjectName("actionrtyrty")
self.menutryrt.addAction(self.actionrtyrty)
self.menurtyr.addAction(self.menutryrt.menuAction())
self.menutryr.addAction(self.menurtyr.menuAction())
self.menuytr.addAction(self.menutryr.menuAction())
self.menu75.addAction(self.menuytr.menuAction())
self.menubar.addAction(self.menu75.menuAction())
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.pushButton.setText(_translate("MainWindow", "PushButton"))
self.checkBox.setText(_translate("MainWindow", "CheckBox"))
self.menu75.setTitle(_translate("MainWindow", "75"))
self.menuytr.setTitle(_translate("MainWindow", "ytr"))
self.menutryr.setTitle(_translate("MainWindow", "tryr"))
self.menurtyr.setTitle(_translate("MainWindow", "rtyr"))
self.menutryrt.setTitle(_translate("MainWindow", "tryrt"))
self.actionrtyrty.setText(_translate("MainWindow", "rtyrty"))
class ExampleApp(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
self.checkBox.stateChanged.connect(self.checkboxChanged)
def checkboxChanged(self, state):
if not state:
self.pushButton.setText("PushButton")
def keyPressEvent(self, QKeyEvent):
if QKeyEvent.key() == QtCore.Qt.Key_F7 and self.checkBox.isChecked():
if self.pushButton.text() == "Hello World":
self.pushButton.setText("PushButton")
else:
self.pushButton.setText("Hello World")
if __name__=="__main__":
app = QtWidgets.QApplication(sys.argv)
window = ExampleApp()
window.show()
sys.exit(app.exec_())
