Macro Mouse Cross/fr: Difference between revisions
mNo edit summary |
(Updating to match new version of source page) |
||
Line 21: | Line 21: | ||
Petit exemple d'utilisation de la class '''ViewObserver()''' et de l'utilisation du clavier avec '''[[Code_snippets/fr#Observation_des_.C3.A9v.C3.A8nements_de_la_souris_dans_la_vue_3D_via_Python|SoKeyboardEvent]]'''}} |
Petit exemple d'utilisation de la class '''ViewObserver()''' et de l'utilisation du clavier avec '''[[Code_snippets/fr#Observation_des_.C3.A9v.C3.A8nements_de_la_souris_dans_la_vue_3D_via_Python|SoKeyboardEvent]]'''}} |
||
<div class="mw-translate-fuzzy"> |
|||
==Utilisation== |
==Utilisation== |
||
Line 28: | Line 29: | ||
# Pressez la touche {{KEY|X}} pour visualiser tous les curseurs. |
# Pressez la touche {{KEY|X}} pour visualiser tous les curseurs. |
||
# Pressez la touche {{KEY|Q}} pour quitter la macro. |
# Pressez la touche {{KEY|Q}} pour quitter la macro. |
||
</div> |
|||
==Script== |
==Script== |
||
Line 34: | Line 36: | ||
'''Macro_Mouse_Cross.FCMacro''' |
'''Macro_Mouse_Cross.FCMacro''' |
||
{{ |
{{MacroCode|code= |
||
# -*- coding: utf-8 -*- |
# -*- coding: utf-8 -*- |
Revision as of 11:09, 23 May 2020
Description |
---|
Cette macro change la forme de la souris en une croix de précision. Version macro : 00.04 Date dernière modification : 2019-06-07 Version FreeCAD : All Téléchargement : ToolBar icon Auteur: Mario52 |
Auteur |
Mario52 |
Téléchargement |
ToolBar icon |
Liens |
Page des macros Comment installer une macro Comment créer une barre d'outils |
Version Macro |
00.04 |
Dernière modification |
2019-06-07 |
Version(s) FreeCAD |
All |
Raccourci clavier |
C, A , G, X, Q |
Voir aussi |
None |
Description
Cette macro change la forme de la souris en une croix de précision..
Petit exemple d'utilisation de la class ViewObserver() et de l'utilisation du clavier avec SoKeyboardEvent
Utilisation
- Pressez la touche C pour activer la croix.
- Pressez la touche A pour activer la flèche.
- Pressez la touche G pour activer la grille.
- Pressez la touche X pour visualiser tous les curseurs.
- Pressez la touche Q pour quitter la macro.
Script
Macro_Mouse_Cross.FCMacro
# -*- coding: utf-8 -*- # mouse cursor to Cross or Arrow + Grig # ver 0.2 08/08/2014 PyQt4 and PySide # ver 0.4 07/06/2019 compatible Python 3. # __title__ = "Macro_Mouse_Cross" __author__ = "Mario52" __wiki__ = "https://www.freecadweb.org/wiki/Macro_Mouse_Cross" __url__ = "http://www.freecadweb.org/index-fr.html" __version__ = "00.04" __date__ = "07/06/2019" try: from PyQt4 import QtCore, QtGui except Exception: from PySide import QtCore, QtGui from pivy import coin global xx ;xx = -1 #################### create document if not exist ####################### doc = FreeCAD.ActiveDocument #### if doc == None: #### doc = FreeCAD.newDocument() #### ######################################################################### class ViewObserver: def logPosition(self, info): global xx self.pos = info["Key"] if (self.pos.upper() == "Q"): v.removeEventCallback("SoKeyboardEvent",c) FreeCAD.Console.PrintMessage("End Macro_Mouse_Cross"+"\n") if (self.pos.upper() == "C"): # change the cursor cross ( + ) QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.CrossCursor)) elif (self.pos.upper() == "A"): # change the cursor in Arrow QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor)) elif (self.pos.upper() == "X") and (info["State"] == "DOWN"): # change the cursor and visualise all model xx += 1 if xx == 0: QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor)) FreeCAD.Console.PrintMessage("ArrowCursor"+"\n") if xx == 1: QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.UpArrowCursor)) FreeCAD.Console.PrintMessage("UpArrowCursor"+"\n") if xx == 2: QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.CrossCursor)) FreeCAD.Console.PrintMessage("CrossCursor"+"\n") if xx == 3: QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.WaitCursor)) FreeCAD.Console.PrintMessage("WaitCursor"+"\n") if xx == 4: QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.IBeamCursor)) FreeCAD.Console.PrintMessage("IBeamCursor"+"\n") if xx == 5: QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.SizeVerCursor)) FreeCAD.Console.PrintMessage("SizeVerCursor"+"\n") if xx == 6: QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.SizeHorCursor)) FreeCAD.Console.PrintMessage("SizeHorCursor"+"\n") if xx == 7: QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.SizeBDiagCursor)) FreeCAD.Console.PrintMessage("SizeBDiagCursor"+"\n") if xx == 8: QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.SizeFDiagCursor)) FreeCAD.Console.PrintMessage("SizeFDiagCursor"+"\n") if xx == 9: QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.SizeAllCursor)) FreeCAD.Console.PrintMessage("SizeAllCursor"+"\n") if xx == 10: QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.BlankCursor)) FreeCAD.Console.PrintMessage("BlankCursor"+"\n") if xx == 11: QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.SplitVCursor)) FreeCAD.Console.PrintMessage("SplitVCursor"+"\n") if xx == 12: QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.SplitHCursor)) FreeCAD.Console.PrintMessage("SplitHCursor"+"\n") if xx == 13: QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) FreeCAD.Console.PrintMessage("PointingHandCursor"+"\n") if xx == 14: QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.ForbiddenCursor)) FreeCAD.Console.PrintMessage("ForbiddenCursor"+"\n") if xx == 15: QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.OpenHandCursor)) FreeCAD.Console.PrintMessage("OpenHandCursor"+"\n") if xx == 16: QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.ClosedHandCursor)) FreeCAD.Console.PrintMessage("ClosedHandCursor"+"\n") if xx == 17: QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.WhatsThisCursor)) FreeCAD.Console.PrintMessage("WhatsThisCursor"+"\n") if xx == 18: QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.BusyCursor)) FreeCAD.Console.PrintMessage("BusyCursor"+"\n") if xx == 19: QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.BitmapCursor)) FreeCAD.Console.PrintMessage("BitmapCursor"+"\n") xx = -1 elif (self.pos.upper() == "G"): # "wmayer" http://forum.freecadweb.org/viewtopic.php?f=3&t=1065&hilit=cross#p8818 # Create Grida grid=coin.SoType.fromName("SoDrawingGrid").createInstance() Gui.ActiveDocument.ActiveView.getSceneGraph().addChild(grid) xx = -1 try: v=Gui.activeDocument().activeView() o = ViewObserver() c = v.addEventCallback("SoKeyboardEvent",o.logPosition) App.Console.PrintMessage("Type Key C to Cross"+"\n") App.Console.PrintMessage("Type Key A to Arrow"+"\n") App.Console.PrintMessage("Type Key X to Visualise all cursor"+"\n") App.Console.PrintMessage("Type Key G to Grid (not editable)"+"\n") App.Console.PrintMessage("Type Key Q to Quit"+"\n") except Exception: FreeCAD.Console.PrintError("\n"+"Not document open"+"\n")
Les curseurs pouvant être utilisés
ArrowCursor, UpArrowCursor, CrossCursor, WaitCursor, IBeamCursor, SizeVerCursor, SizeHorCursor SizeBDiagCursor, SizeFDiagCursor, SizeAllCursor, BlankCursor, SplitVCursor, SplitHCursor PointingHandCursor, ForbiddenCursor, OpenHandCursor, ClosedHandCursor, WhatsThisCursor, BusyCursor, BitmapCursor
Limitations
Le curseur peut changer d'apparence suivant l'établi utilisé, il faut alors répéter l’opération.
Le curseur peut se substituer aux autre curseurs (ex: lors de l'agrandissement d'une fenêtre, coins...).
La grille est permanente.