La solution simple ici https://www.reddit.com/r/learnpython/comments/45h05k/solved_kernel_crashing_when_closing_gui_spyder/ mettre seulement if __name__ == __main__: app=0 #This is the solution app = QtGui.QApplication(sys.argv) MainApp = Dice_Roller() MainApp.show() s
Hum, sympa. Mais IMO, cest à peine lié à Qt/PySide. Tout dabord, comment ces deux sont-ils différents? Si vous avez un héritage simple (peut-être sans compter les mixins), il ny a pas de différence de comportement. Une différence cosmétique demeure - vous navez pas besoin de renommer votre classe d
Comme jedwards la commenté, utilisez setEchoMode méthode : exemple : from PyQt4 import QtGui, QtCore app = QtGui.QApplication([]) pw = QtGui.QLineEdit() pw.setEchoMode(QtGui.QLineEdit.Password) pw.show() app.exec_() Voir aussi QLineEdit.EchoMode énumération.
OK, jai écrit un module avec 2 fonctions pour faire ce que je demandais. Pas vraiment si compliqué, une fois que jai compris, mais cela fait certainement gagner beaucoup de temps chaque fois que vous créez de nouveaux programmes pyqt gui où vous voulez enregistrer widget valeurs de champ entre les s
Cest voulu. Ce que vous devez faire est dutiliser des signaux/slots, du code dans vos classes Qt ou de créer des threads avant dappeler app.exec(). Les signaux et les slots sont votre façon de facto dinteragir avec Qt. Fondamentalement, un signal est nimporte quel événement ou événement personnalis
Lorsque les données sous-jacentes du modèle changent, le modèle doit émettre soit layoutChanged, soit layoutAboutToBeChanged, afin que la vue se mette à jour correctement (il y a aussi dataChanged, si vous souhaitez mettre à jour une plage de cellules spécifique). Donc, vous avez juste besoin de qu
Voici les packages Windows wheel construits par Chris Golke - Python Windows Binary packages - PyQt Dans les noms de fichiers cp27 signifie C-python version 2.7, cp35 signifie python 3.5, etc. Étant donné que Qt est un système plus compliqué avec une base de code C++ compilée sous-jacente à linter
Tout dabord :ajoutez un véritable widget à votre exemple : self.widget = QWidget(self) layout = QVBoxLayout(self) layout.addWidget(self.widget) Deuxièmement :rendez-vous service et utilisez des triples guillemets : self.widget.setStyleSheet( QWidget { border: 20
QProcess est très similaire à subprocess , mais cest beaucoup plus pratique à utiliser dans le code (Py)Qt. Parce quil utilise des signaux/slots. De plus, il exécute le processus de manière asynchrone afin que vous nayez pas à utiliser QThread . Jai modifié (et nettoyé) votre code pour QProcess : i
Version mise à jour de la réponse de @Alaaedeen. Vous pouvez spécifier nimporte quelle partie de la version de nimporte quel package que vous souhaitez installer. Cela peut entraîner la modification dautres versions de package. Par exemple, si vous ne vous souciez pas de la version spécifique de PyQ
Si vous avez besoin de reconnecter des signaux à de nombreux endroits, vous pouvez définir une fonction utilitaire générique comme celle-ci : def reconnect(signal, newhandler=None, oldhandler=None): try: if oldhandler is not None: while True: signal.di
Peu importe que la connexion soit établie avant ou après le déplacement de lobjet de travail vers lautre thread. Pour citer les documents Qt : Qt::AutoConnection - Si le signal est émis depuis un autre thread que lobjet récepteur, le signal est mis en file dattente, se comportant comme Qt::QueuedCo
Limplémentation par défaut de run() dans QThread exécute une boucle dévénements pour vous, léquivalent de : class GenericThread(QThread): def run(self, *args): self.exec_() La chose importante à propos dune boucle dévénements est quelle permet aux objets possédés par le thread pour rec
Modifiez votre center méthode comme suit : def center(self): frameGm = self.frameGeometry() screen = QtGui.QApplication.desktop().screenNumber(QtGui.QApplication.desktop().cursor().pos()) centerPoint = QtGui.QApplication.desktop().screenGeometry(screen).center() frameGm.moveCenter(ce
Cela dépend de ce que vous entendez par nécessaire. Une application pourrait potentiellement consomment beaucoup de mémoire si (par exemple) on ne fait pas attention lors de la fermeture des widgets. Les classes basées sur QObject sont conçues pour être (éventuellement) liées ensemble dans une hiér
import sys from PyQt5 import QtWidgets, QtGui, QtCore class Example(QtWidgets.QMainWindow): def __init__(self): super(Example, self).__init__() self.initUI() def mousePressEvent(self, QMouseEvent): print(QMouseEvent.pos()) def mouseReleaseEvent(self, QMouseEvent)
Tout dabord, cest une mauvaise idée déditer directement le code créé avec QtDesigner. Vous avez peut-être vu la ligne # WARNING! All changes made in this file will be lost! en haut du document. Pour un widget aussi simple, il vaut mieux utiliser un codage manuel. Deuxièmement, regardez de plus près
Peut créer un décorateur qui encapsule les nouveaux décorateurs de signal/slot de PyQt et fournit une gestion des exceptions pour tous les slots. Peut également remplacer QApplication::notify pour intercepter les exceptions C++ non interceptées. import sys import traceback import types from functool
Je nai pas travaillé avec, mais la recherche semble indiquer quil faut jouer avec les drapeaux de la fenêtre. QWidget a une méthode appelée setWindowFlags . Voici la doc pour la classe Qt.WindowFlags. Voici une référence pour tous les drapeaux. Recherchez Qt.WindowMaximizeButtonHint En général,
Vous pouvez utiliser pyuic4 commande sur le shell :pyuic4 input.ui -o output.py Pour pyqt5, vous pouvez utiliser pyuic5 xyz.ui > xyz.py ou pyuic5 xyz.ui -o xyz.py Si vous utilisez Windows, le dossier PyQt4 nest pas dans le chemin par défaut, vous devez vous y rendre avant dessayer de lex