J'ai un QtableWidget rempli de formulaires (formulaire importé). Chaque formulaire est fondamentalement un Qgroupbox qui contient quelques boutons-poussoirs et un spinbox. J'ai choisi de les mettre dans la table afin que les touches fléchées puissent être utilisées pour naviguer entre les boîtes de groupe. Mais je veux que chaque bouton soit vérifiable via un raccourci clavier ET que le spinbox soit ajusté via une sorte de raccourci clavier (peut-être shift plus flèche). J'ai la navigation qui fonctionne principalement mais les raccourcis que j'ai assignés aux boutons poussoirs ne fonctionnent pas. Il semble que j'ai besoin d'un moyen de "passer" le raccourci de la boîte de groupe qui a le focus sur le widget cible à l'intérieur de cette boîte de groupe. Le deuxième problème d'ajustement des boîtes de sélection semble être lié, mais je suis encore moins clair sur la façon de mettre en place cela.pyqt5 Comment se connecter raccourci au widget enfant
J'ai attaché la plupart du code (généré avec QTCtreator) pour le formulaire. Il est intéressant pour moi que le code de raccourci soit dans la méthode retranslate.
image de formulaire unique
image de la grille des formes
class Ui_FormLoads(object):
def setupUi(self, FormLoads):
FormLoads.setObjectName("FormLoads")
FormLoads.resize(88, 105)
FormLoads.setFocusPolicy(QtCore.Qt.TabFocus)
FormLoads.setWindowTitle("LoadChannel")
self.gridLayout = QtWidgets.QGridLayout(FormLoads)
self.gridLayout.setContentsMargins(8, 8, 8, 8)
self.gridLayout.setSpacing(0)
self.gridLayout.setObjectName("gridLayout")
self.groupBox = QtWidgets.QGroupBox(FormLoads)
font = QtGui.QFont()
font.setPointSize(10)
self.groupBox.setFont(font)
self.groupBox.setObjectName("groupBox")
self.gridLayout_2 = QtWidgets.QGridLayout(self.groupBox)
self.gridLayout_2.setContentsMargins(8, 8, 8, 8)
self.gridLayout_2.setObjectName("gridLayout_2")
self.pushStop = QtWidgets.QPushButton(self.groupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.pushStop.sizePolicy().hasHeightForWidth())
self.pushStop.setSizePolicy(sizePolicy)
self.pushStop.setMinimumSize(QtCore.QSize(30, 0))
font = QtGui.QFont()
font.setPointSize(10)
self.pushStop.setFont(font)
self.pushStop.setText("Stop")
self.pushStop.setCheckable(True)
self.pushStop.setObjectName("pushStop")
self.gridLayout_2.addWidget(self.pushStop, 1, 0, 1, 1)
self.pushReload = QtWidgets.QPushButton(self.groupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.pushReload.sizePolicy().hasHeightForWidth())
self.pushReload.setSizePolicy(sizePolicy)
self.pushReload.setMinimumSize(QtCore.QSize(30, 0))
font = QtGui.QFont()
font.setPointSize(10)
self.pushReload.setFont(font)
self.pushReload.setText("Load")
self.pushReload.setCheckable(True)
self.pushReload.setObjectName("pushReload")
self.gridLayout_2.addWidget(self.pushReload, 1, 1, 1, 1)
self.spinBox = QtWidgets.QSpinBox(self.groupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.spinBox.sizePolicy().hasHeightForWidth())
self.spinBox.setSizePolicy(sizePolicy)
self.spinBox.setMinimumSize(QtCore.QSize(51, 0))
font = QtGui.QFont()
font.setPointSize(13)
self.spinBox.setFont(font)
self.spinBox.setMinimum(-20)
self.spinBox.setMaximum(12)
self.spinBox.setObjectName("spinBox")
self.gridLayout_2.addWidget(self.spinBox, 0, 0, 1, 2)
self.gridLayout.addWidget(self.groupBox, 0, 0, 1, 1)
self.retranslateUi(FormLoads)
QtCore.QMetaObject.connectSlotsByName(FormLoads)
def retranslateUi(self, FormLoads):
_translate = QtCore.QCoreApplication.translate
self.groupBox.setTitle(_translate("FormLoads", "GroupBox"))
self.pushStop.setShortcut(_translate("FormLoads", "S"))
self.pushReload.setShortcut(_translate("FormLoads", "L"))
Pourquoi voulez-vous cela dans la méthode traduire? – eyllanesc
Je ne le veux pas forcément dans la méthode de traduction mais c'est là que QtCreator le met automatiquement. Je suis curieux de savoir si c'est un bug ou quelque chose? – chmedly
Ok, qu'en est-il du spinbox, que voulez-vous dire? – eyllanesc