Macro Fonts Win10 PYMP
Descrizione |
---|
Questa piccola macro è dedicata agli utenti di Windows 10. I font dentro il browser per utilizzare ShapeString sono invisibili e questa piccola macro può aiutarvi a vedere il font in modo efficace. Versione macro: 01.00 Ultima modifica: 2019-05-10 Versione FreeCAD: All Download: ToolBar Icon Autore: Mario52 |
Autore |
Mario52 |
Download |
ToolBar Icon |
Link |
Raccolta di macro Come installare le macro Personalizzare la toolbar |
Versione macro |
01.00 |
Data ultima modifica |
2019-05-10 |
Versioni di FreeCAD |
All |
Scorciatoia |
Nessuna |
Vedere anche |
Nessuno |
Descrizione
Questa piccola macro è dedicata agli utenti di Windows 10. I font dentro explorer per utilizzare ShapeString sono invisibili e questa piccola macro può aiutarvi a vedere il font in modo efficace.
Macro Fonts Win10 PYMP
Utilizzo
Lancia la macro cerca la tua font è applica
Macro Fonts Win10 PYMP window
- Finestra per il vostro testo
- Text edit per visualizzare il camino è il vero nome della font
- Combobox per scegliere la vostra font
- OK : validate vostro testo
- Color : scegliere il colore del vostro testo
10.00
: dimensione del testo di lavoro dentro la vista 3D- CkeckBox Text : crea uno testo in modo text con il testo ShapeString
- New path : altro path per i files font
20.00
: dimensione del testo su la finestra della macro- Origin : ritorna al repertorio sistema delle font
Script
Macro Fonts Win10 PYMP.FCMacro
# -*- coding: utf-8 -*- from __future__ import unicode_literals """ *************************************************************************** * Copyright (c) 2019 <mario52> * * * * This file is a supplement to the FreeCAD CAx development system. * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License (LGPL) * * as published by the Free Software Foundation; either version 2 of * * the License, or (at your option) any later version. * * for detail see the LICENCE text file. * * * * This software is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU Library General Public License for more details. * * * * You should have received a copy of the GNU Library General Public * * License along with this macro; if not, write to the Free Software * * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * * USA * *************************************************************************** * WARNING! All changes in this file will be lost and * * may cause malfunction of the program * *************************************************************************** """ #Macro_Fonts_Win10_PYMP 10/05/2019 # ############################################################################################################################### #OS: Windows 10 #OS: Windows 10 #OS: Windows 10 #Word size of OS: 64-bit #Word size of OS: 64-bit #Word size of OS: 64-bit #Word size of FreeCAD: 64-bit #Word size of FreeCAD: 64-bit #Word size of FreeCAD: 64-bit #Version: 0.16.6706 (Git) #Version: 0.17.13541 (Git) #Version: 0.18.16093 (Git) #Build type: Release #Build type: Release #Build type: Release #Branch: releases/FreeCAD-0-16 #Branch: releases/FreeCAD-0-17 #Branch: releases/FreeCAD-0-18 #Hash: f86a4e411ff7848dea98d7242f43b7774bee8fa0#Hash: 9948ee4f1570df9216862a79705afb367b2c6ffb#Hash: 690774c0effe4fd7b8d2b5e2fb2b8c8d145e21ce #Python version: 2.7.8 #Python version: 2.7.14 #Python version: 2.7.14 #Qt version: 4.8.7 #Qt version: 4.8.7 #Qt version: 4.8.7 #Coin version: 4.0.0a #Coin version: 4.0.0a #Coin version: 4.0.0a #OCC version: 6.8.0.oce-0.17 #OCC version: 7.2.0 #OCC version: 7.2.0 ############################################################################################################################### #OS: Windows 10 #Word size of OS: 64-bit #Word size of FreeCAD: 64-bit #Version: 0.19.16523 (Git) #Build type: Release #Branch: master #Hash: 9b3ec233c8b21e0df66fada487cd10f471d60cac #Python version: 3.6.6 #Qt version: 5.6.2 #Coin version: 4.0.0a #OCC version: 7.3.0 ############################################################################################################################### __title__ = "Macro_Fonts_Win10_PYMP" __author__ = "Mario52" __url__ = "http://www.freecadweb.org/index-fr.html" __version__ = "01.00" __date__ = "2019/05/10" #YYYY/MM/DD # #import PySide2 #from PySide2 import QtGui ,QtCore #from PySide2.QtGui import * #from PySide2.QtCore import * import PySide from PySide import QtGui ,QtCore from PySide.QtGui import * from PySide.QtCore import * import Draft, Part, PartGui, FreeCADGui, FreeCAD from FreeCAD import Base import math from math import sqrt, pi, sin, cos, asin import re import operator from operator import itemgetter, attrgetter, methodcaller # pour sort Gui = FreeCADGui App = FreeCAD import os, time, sys import platform #import glob #files_TTF = glob.glob(self.pathFont + "/*.TTF") ################################## import matplotlib import matplotlib.font_manager import matplotlib.font_manager as fontman import matplotlib.font_manager as fontconfig from matplotlib.font_manager import FontProperties #from matplotlib.ft2font import FT2Font ################################## global ui ; ui = "" global newPolicePath global PolicePath if platform.system() == "Windows" : PolicePath = "C:/Windows/Fonts/ARIAL.TTF" elif platform.system() == "Linux" : PolicePath = "/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-M.ttf" elif platform.system() == "Darwin": PolicePath = "/Library/Fonts/Arial.ttf" else: PolicePath = "C:/Windows/Fonts/ARIAL.TTF" nomPolice = os.path.basename(PolicePath).split('.')[0] newPolicePath = os.path.dirname(PolicePath).split('.')[0] #### Config Begin ######################################### # # https://en.wikipedia.org/wiki/Web_colors global setColorTTF ; setColorTTF = "blue" # .TTF color by "name" or hexa "#0000FF" global setColorFON ; setColorFON = "orange" # .FON color by "name" or hexa "#FFA500" global setColorOTF ; setColorOTF = "green" # .OTF color by "name" or hexa "#008000" global setColorPOL ; setColorPOL = "black" # .OTHER color by "name" or hexa "#000000" ##### global switchModeTextList; switchModeTextList= 1 # 0 = mode text normal (et noir) coupe le switchFontComBox # 1 = permet le switchFontComBox 0/1 ##### global switchFontComBox ; switchFontComBox = 1 # 0 = texte (en couleur) dans liste ComboBox plus rapide # 1 = fontFamily dans liste ComboBox plus lent mais plus beau! ##### global setSystemFonts ; setSystemFonts = 1 # 0 = matplotlib.font_manager.findSystemFonts("C:/", "ttf") # fait toutes les fontes (dans tous les dossiers et sous dossiers du DD) time !! # 1 = fontman.findSystemFonts(self.pathFont) # fait toutes les fontes du repertoire (et dans tous les sous dossiers) ##### global seTtextAlignement ; seTtextAlignement = 0 # 0 = AlignLeft (default) # 1 = AlignCenter # 2 = AlignRight ##### #### Config End ########################################### setIconTTF = [ "16 16 6 1", " c None", ". c #204A87", "+ c None", "@ c #729FCF", "# c #CC0000", "$ c #EDD400", ".+++++++++++@@@@", ".++++++++@+@++@@", ".++#####++++@@+@", ".+++$#$$$++@+@+@", ".++++#$+++++++@+", ".++++#$#####++++", ".++++#$+$#$$$+++", ".++++#$++#$+++++", ".@++++$++#$+###+", ".@@++++++#$+#$$$", "..@@+++++#$+#$++", "...@@+++++$+###+", "....@@++++++#$$$", ".....@@+++++#$++", "......@@+++++$++", "................"] setIconFON = [ "16 16 6 1", " c None", ". c #204A87", "+ c None", "@ c #F57900", "# c #CC0000", "$ c #EDD400", ".+++++++++++@@@@", ".++++++++@+@++@@", ".++###++++++@@+@", ".++#$$$++++@+@+@", ".++#$+++++++++@+", ".++###+###++++++", ".++#$$$#$#$+++++", ".++#$++#$#$+++++", ".@++$++#$#$##+#+", ".@@++++#$#$##$#$", "..@@+++###$#$##$", "...@@+++$$$#$##$", "....@@+++++#$+#$", ".....@@++++#$+#$", "......@@++++$++$", "................"] setIconOTF = [ "16 16 6 1", " c None", ". c #204A87", "+ c None", "@ c #4E9A06", "# c #CC0000", "$ c #EDD400", ".+++++++++++@@@@", ".++++++++@+@++@@", ".++###++++++@@+@", ".++#$#$++++@+@+@", ".++#$#$+++++++@+", ".++#$#$###++++++", ".++#$#$+#$$+++++", ".++###$+#$++++++", ".@++$$$+#$+###++", ".@@+++++#$+#$$$+", "..@@++++#$+#$+++", "...@@++++$+###++", "....@@+++++#$$$+", ".....@@++++#$+++", "......@@++++$+++", "................"] setIconPOL = [ "16 16 12 1", " c None", ". c #204A87", "+ c None", "@ c #06989A", "# c #73D216", "$ c #000000", "% c #75507B", "& c #729FCF", "* c #CC0000", "= c #F57900", "- c #EDD400", "; c #4E9A06", ".+++++++++++@#$%", ".++++++++$+#++&$", ".++***++++++=@+%", ".++*-*-++++*+&+$", ".++*-*-+++++++*+", ".++***-***++++++", ".++*---*-*-+++++", ".++*-++*-*-+++++", ".$++-++*-*-*++++", ".*@++++*-*-*-+++", "..#*+++***-*-+++", "...;#+++---*-+++", "....%=+++++*-+++", ".....;$++++****+", "......@%++++----", "................"] def createSpace(texte): # detecte majuscule et ajoute un espace devant la lettre # return createSpace(TexTe) = Tex Te , if createSpace(TEXTE) = TEXTE if texte.isupper(): stringSpace = texte else: try: stringSpace = texte[0] for i in texte[1:]: if re.search(r"[A-Z]", i): i = " " + i stringSpace += i except Exception: stringSpace = texte return stringSpace def family(chaine): # return family(chaine)[1] = Family , family(chaine)[2] = typeCar (form [a, b, c ...] famille = typeCar = "" try: if chaine.find('-') != -1: famille = chaine[:chaine.find('-')] typeCar = chaine[chaine.find('-')+1:] else: famille = chaine typeCar = "" except Exception: famille = chaine typeCar = "" typeCar = str(createSpace(typeCar)).split() return [createSpace(famille), typeCar] class Ui_MainWindow(object): def __init__(self ): self.window = MainWindow ##path############################################################### #self.path = FreeCAD.ConfigGet("AppHomePath") # path FreeCAD installation #self.path = FreeCAD.ConfigGet("UserAppData") # path FreeCAD User data #self.path = "your path" # your directory path param = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Macro")# macro path self.path = param.GetString("MacroPath","") + "/" # macro path self.path = self.path.replace("\\","/") # convert the "\" to "/" #FreeCAD.Console.PrintMessage( "Path for the icons : " , self.path )# ##################################################################### ####font textEdit self.nomPolice = "Arial" self.FontTextSize = 20 self.fonteComp = "" self.font = QtGui.QFont() ####font textEdit self.FontSize = 10.0 self.red = (204.0 / 255.0) self.green = (204.0 / 255.0) self.blue = (204.0 / 255.0) self.alpha = 1.0 # 1.0 = visibility max (opacity) ####global font self.fontGlobal_08 = QtGui.QFont() # self.fontGlobal_08.setFamily("Arial") # self.fontGlobal_08.setPointSize(8) # ####global font self.tableau = [] #Index (), [chemin plus nom fichier (nomPathPolice), nom sans extension (nomSimple), nomSimpleExt (nomSimple + Ext)] self.index = 0 #Index () ########################## def searchFont(self,pathSearch): global setSystemFonts global seTtextAlignement global switchFontComBox global switchModeTextList files_All_Fonts = "" ##https://matplotlib.org/_modules/matplotlib/font_manager.html if setSystemFonts == 0: files_All_Fonts = matplotlib.font_manager.findSystemFonts(pathSearch, "ttf") # fait toutes les fontes ? () else: files_All_Fonts = fontman.findSystemFonts(pathSearch) # fait toutes les fontes (et dans tous les sous dossiers) if len(files_All_Fonts) > 0: self.tableau = [] self.index = 0 for fonte in files_All_Fonts: #### nomPathPolice = nomFichier = nomSimpleExt = nomSimple = nomExtension = nameName = "" nomPathPolice = fonte.replace("\\","/") # convert the "\" to "/" nomFichier = nomPathPolice.split("/") # complet split nomSimpleExt = nomFichier[-1] # nom avec extension nomSimple = nomFichier[-1][:-4] # nom sans extension nomExtension = nomSimpleExt[nomSimpleExt.rfind('.')+1:].upper() # extension #### try: # nameFamily = matplotlib.font_manager.FontProperties(fname=fonte).get_family() ##['sans-serif'] # nameStyle = matplotlib.font_manager.FontProperties(fname=fonte).get_style() #normal # nameVariant = matplotlib.font_manager.FontProperties(fname=fonte).get_variant() #normal # nameWeight = matplotlib.font_manager.FontProperties(fname=fonte).get_weight() #normal # nameStretch = matplotlib.font_manager.FontProperties(fname=fonte).get_stretch() #normal # nameFileComp = matplotlib.font_manager.FontProperties(fname=fonte).get_file() ##c:\windows\fonts\NotoNaskhArabicUI-Regular.ttf # nameSize = matplotlib.font_manager.FontProperties(fname=fonte).get_size() #10.0 nameName = matplotlib.font_manager.FontProperties(fname=fonte).get_name() ##Noto Naskh Arabic UI # nameSizePoint = matplotlib.font_manager.FontProperties(fname=fonte).get_size_in_points() #10.0 # nameSlant = matplotlib.font_manager.FontProperties(fname=fonte).get_slant() #normal # namePattern = matplotlib.font_manager.FontProperties(fname=fonte).get_fontconfig_pattern() #:family=sans-serif:style=normal:variant=normal:weight=normal:stretch=normal:file=c:\windows\fonts\NotoNaskhArabicUI-Regular.ttf:size=10.0 except Exception: nameFamily = nameStyle = nameVariant = nameWeight = nameStretch = nameFileComp = nameSize = nameName = nameSizePoint = nameSlant = namePattern = "" #### if nameName == "" : nameName = nomSimple self.tableau.append([0, nomPathPolice, nomSimple, nomSimpleExt.upper(), nomExtension.upper(), nameName]) self.tableau = sorted(self.tableau, key=itemgetter(3)) # sorted by nomSimple.upper() try: for line in range(len(self.tableau)): # enleve les doubles (bon) if self.tableau[line][2] == self.tableau[line + 1][2]: # enleve les doubles (bon) del(self.tableau[line + 1]) # enleve les doubles (bon) except Exception: None self.comboBoxPy.clear() for line in range(len(self.tableau)): try: # self.tableau[line][0] = line # ajoute le numero de ligne if self.tableau[line][2].upper() == "ARIAL": # detecte la fonte de base self.index = line ####Section common color and font begin ###################### model = self.comboBoxPy.model() if switchModeTextList == 1: if self.tableau[line][4] == "TTF": item = QtGui.QStandardItem(QtGui.QPixmap(setIconTTF), str(line)) item.setForeground(QtGui.QColor(setColorTTF)) elif self.tableau[line][4] == "FON": item = QtGui.QStandardItem(QtGui.QPixmap(setIconFON), str(line)) item.setForeground(QtGui.QColor(setColorFON)) elif self.tableau[line][4] == "OTF": item = QtGui.QStandardItem(QtGui.QPixmap(setIconOTF), str(line)) item.setForeground(QtGui.QColor(setColorOTF)) else: item = QtGui.QStandardItem(QtGui.QPixmap(setIconPOL), str(line)) item.setForeground(QtGui.QColor(setColorPOL)) else: self.comboBoxPy.addItem(self.tableau[line][2]) if seTtextAlignement == 0: item.setTextAlignment(QtCore.Qt.AlignLeft) elif seTtextAlignement == 1: item.setTextAlignment(QtCore.Qt.AlignCenter) elif seTtextAlignement == 2: item.setTextAlignment(QtCore.Qt.AlignRight) ####Section item color and font end ########################## ####Section setfont Family switchFontComBox begin############# if switchFontComBox == 1: typeCar = font = "" font = QtGui.QFont() #font = item.font() typeCar = family(self.tableau[line][2])[1] font.setBold(False) font.setItalic(False) if len(typeCar) > 0: for option in typeCar: if option == "Bold": font.setBold(True) if (option == "Italic") or (option == "It") or (option == "Slanted"): font.setItalic(True) if option == "Oblique": font.setItalic(True) #'Bold''Regular''Slanted''Italic''Medium''Extra''Light''Condensed''Black''It''Semibold' font.setFamily(self.tableau[line][5]) font.setPixelSize(15) item.setFont(font) ####Section setfont Family switchFontComBox end############### model.appendRow(item) self.comboBoxPy.setItemText(line, self.tableau[line][2]) ####Section common color and font end######################### except Exception: FreeCAD.Console.PrintMessage("searchFont()") None #for i in self.tableau: print(i) MainWindow.setWindowTitle(__title__ + " (" + str(self.index + 1) + "/" + str(len(self.tableau)) + ") (" + __version__ + " : " + __date__ + ")") self.lineEdit_NameFile.setText(self.tableau[self.index][1]) self.textEdit.setToolTip("Your text here" + "\n" "Title (" + str(self.index + 1) + "/" + str(len(self.tableau)) + ") = (index file, number file font)" + "\n" "Version " + __version__ + " : " + __date__ + ") of " + __title__ + ")" + "\n\n" "It is possible that a font is not visible in its normal design," + "\n" "but it is normal in the 3DView, sorry !") self.comboBoxPy.setCurrentIndex(self.index) self.fonteComp = self.tableau[self.index][1] #### self.textEditFont = QtGui.QFont() # self.textEditFont.setFamily(self.tableau[self.index][5]) # self.textEditFont.setPointSize(20) # self.textEdit.setFont(self.textEditFont) # #### ########################## def setupUi(self, MainWindow): global setSystemFonts global setColorTTF global setColorFON global setColorOTF global setColorPOL global seTtextAlignement global switchFontComBox global switchModeTextList global ui self.window = MainWindow MainWindow.setObjectName(("MainWindow")) MainWindow.resize(470, 250) MainWindow.setMinimumSize(QtCore.QSize(470, 250)) # MainWindow.setMaximumSize(QtCore.QSize(470, 250)) self.centralwidget = QtGui.QWidget(MainWindow) self.centralwidget.setObjectName(("centralwidget")) self.textEdit = QtGui.QTextEdit(self.centralwidget) self.textEdit.setGeometry(QtCore.QRect(20, 20, 426, 90)) self.textEdit.setObjectName(("textEdit")) self.textEdit.setText("Your text here") # self.textEdit.setToolTip("Your text here" + "\n" # "Title (" + str(self.index + 1) + "/" + str(len(self.tableau)) + ") = (index file, number file font)" + "\n" # "Version " + __version__ + " : " + __date__ + ") of " + __title__ + ")" + "\n\n" # "It is possible that a font is not visible in its normal design," + "\n" # "but it is normal in the 3DView, sorry !") self.lineEdit_NameFile = QtGui.QLineEdit(self.centralwidget) self.lineEdit_NameFile.setGeometry(QtCore.QRect(20, 125, 426, 22)) self.lineEdit_NameFile.setObjectName("lineEdit_NameFile") # self.lineEdit_NameFile.setText(self.tableau[self.index][1]) self.lineEdit_NameFile.setToolTip("Complete path and name of Font file") ###################### self.comboBoxPy = QtGui.QComboBox(self.centralwidget) self.comboBoxPy.setGeometry(QtCore.QRect(20, 155, 426, 22)) self.comboBoxPy.setObjectName("comboBoxPy") self.comboBoxPy.setToolTip("Choice your Font") #### #self.pathFont = PolicePath[:-10] self.pathFont = PolicePath[:len(PolicePath)-(PolicePath[::-1].index("/"))-1] #### ui.searchFont(self.pathFont) verPython = sys.version_info if verPython.major < 3: self.comboBoxPy.currentIndexChanged.connect(self.on_fontComboBoxPython) else: # Qt 5 QtCore.QObject.connect(self.comboBoxPy, QtCore.SIGNAL("currentIndexChanged(int)"), self.on_fontComboBoxPython) self.PB_OK = QtGui.QPushButton(self.centralwidget) self.PB_OK.setGeometry(QtCore.QRect(20, 185, 75, 23)) self.PB_OK.setToolTip("Validate") self.PB_OK.setFont(self.fontGlobal_08) self.PB_OK.setObjectName(("PB_OK")) self.PB_OK.clicked.connect(self.on_PB_OK) # "" self.PB_color = QtGui.QPushButton(self.centralwidget) self.PB_color.setGeometry(QtCore.QRect(104, 185, 75, 23)) self.PB_color.setToolTip("Text color") self.PB_color.setFont(self.fontGlobal_08) self.PB_color.setObjectName(("PB_color")) self.PB_color.clicked.connect(self.on_PB_color) # "" self.doubleSpinBox_1 = QtGui.QDoubleSpinBox(self.centralwidget) self.doubleSpinBox_1.setGeometry(QtCore.QRect(187, 185, 60, 23)) self.doubleSpinBox_1.setMinimum(0.0) self.doubleSpinBox_1.setMaximum(10000.0) self.doubleSpinBox_1.setSingleStep(1.0) self.doubleSpinBox_1.setValue(self.FontSize) self.doubleSpinBox_1.setFont(self.fontGlobal_08) self.doubleSpinBox_1.setToolTip("Dimension of the Shape") self.doubleSpinBox_1.setObjectName("doubleSpinBox_1") self.doubleSpinBox_1.valueChanged.connect(self.on_doubleSpinBox_1_valueChanged)# "" self.checkBox_1 = QtGui.QCheckBox(self.centralwidget) self.checkBox_1.setGeometry(QtCore.QRect(255, 185, 50, 23)) self.checkBox_1.setFont(self.fontGlobal_08) self.checkBox_1.setToolTip("Create text") self.checkBox_1.setObjectName(("checkBox_1")) self.checkBox_1.setChecked(False) # self.checkBox_1.clicked.connect(self.on_checkBox_1_clicked) self.doubleSpinBox_2 = QtGui.QDoubleSpinBox(self.centralwidget) self.doubleSpinBox_2.setGeometry(QtCore.QRect(387, 185, 60, 23)) self.doubleSpinBox_2.setMinimum(0.0) self.doubleSpinBox_2.setMaximum(10000.0) self.doubleSpinBox_2.setSingleStep(1.0) self.doubleSpinBox_2.setValue(self.FontTextSize) self.doubleSpinBox_2.setFont(self.fontGlobal_08) self.doubleSpinBox_2.setToolTip("Dimension of text in window macro") self.doubleSpinBox_2.setObjectName("doubleSpinBox_1") self.doubleSpinBox_2.valueChanged.connect(self.on_doubleSpinBox_2_valueChanged)#connect on def "on_doubleSpinBox_2_valueChanged" self.PB_newPathFont = QtGui.QPushButton(self.centralwidget) self.PB_newPathFont.setGeometry(QtCore.QRect(305, 185, 75, 23)) self.PB_newPathFont.setToolTip("New directory font") self.PB_newPathFont.setFont(self.fontGlobal_08) self.PB_newPathFont.setObjectName(("PB_newPathFont")) self.PB_newPathFont.clicked.connect(self.on_PB_newPathFont) # "" self.PB_systemPath = QtGui.QPushButton(self.centralwidget) self.PB_systemPath.setGeometry(QtCore.QRect(305, 215, 75, 23)) self.PB_systemPath.setToolTip("Return origin font system") self.PB_systemPath.setFont(self.fontGlobal_08) self.PB_systemPath.setObjectName(("PB_systemPath")) self.PB_systemPath.clicked.connect(self.on_PB_systemPath) # "" self.line = QtGui.QFrame(self.centralwidget) self.line.setGeometry(QtCore.QRect(20, 220, 280, 16)) self.line.setFrameShape(QtGui.QFrame.HLine) self.line.setFrameShadow(QtGui.QFrame.Sunken) self.line.setObjectName("line") MainWindow.setCentralWidget(self.centralwidget) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): MainWindow.setWindowTitle(__title__ + " (" + str(self.index + 1) + "/" + str(len(self.tableau)) + ") (" + __version__ + " : " + __date__ + ")") MainWindow.setWindowFlags(PySide.QtCore.Qt.WindowStaysOnTopHint) # PySide cette fonction met la fenetre en avant MainWindow.setWindowIcon(QtGui.QIcon(self.path + "Macro_Fonts_Win10_PYMP.png"))# change l'icone de la fenetre principale print(self.path) self.PB_OK.setText("Ok") self.PB_color.setText("Color") self.checkBox_1.setText("Text") self.PB_newPathFont.setText("New path") self.PB_systemPath.setText("Origin") def on_doubleSpinBox_1_valueChanged(self,value): # self.FontSize = value def on_doubleSpinBox_2_valueChanged(self,value): self.FontTextSize = value self.font.setPointSize(self.FontTextSize) self.textEdit.setCurrentFont(self.font) self.textEdit.setFont(self.font) def on_fontComboBoxPython(self,indeX): # 0: for fontComboBoxPython self.index = indeX MainWindow.setWindowTitle(__title__ + " (" + str(self.index + 1) + "/" + str(len(self.tableau)) + ") (" + __version__ + " : " + __date__ + ")") self.lineEdit_NameFile.setText(self.tableau[self.index][1]) famille = typeCar = self.font = "" self.font = QtGui.QFont() typeCar = family(self.tableau[self.index][2])[1] self.font.setBold(False) self.font.setItalic(False) if len(typeCar) > 0: for option in typeCar: if option == "Bold": self.font.setBold(True) if (option == "Italic") or (option == "It") or (option == "Slanted"): self.font.setItalic(True) if option == "Oblique": self.font.setItalic(True) #'Bold''Regular''Slanted''Italic''Medium''Extra''Light''Condensed''Black''It''Semibold'#+ self.font.setFamily(self.tableau[self.index][5]) self.font.setPointSize(self.FontTextSize) self.textEdit.setCurrentFont(self.font) self.textEdit.setFont(self.font) #### self.fonteComp = self.tableau[self.index][1] # FreeCAD.Console.PrintMessage(str(self.index) + " , " + self.tableau[self.index][1] + " , " + self.tableau[self.index][2] + " , ' " + famille + "' , ' " + typeCar + " ' \n") def on_PB_OK(self): global PolicePath try: texte = unicode(self.textEdit.toPlainText()) # ori except Exception: #Qt version: 5.6.2 texte = self.textEdit.toPlainText() # Qt 5.6.2 error unicode if texte != "": tx = Draft.makeShapeString(String=texte, FontFile = self.fonteComp, Size = self.FontSize, Tracking = 0.0) tx.Label = self.tableau[self.index][2] tx.ViewObject.ShapeColor = (self.red, self.green, self.blue) # color of ShapeString ## section Texte if self.checkBox_1.isChecked(): tx2 = Draft.makeText([texte],point=FreeCAD.Vector(0.0,0.0,0.0)) tx2.ViewObject.FontName = self.tableau[self.index][1] tx2.ViewObject.TextColor = (self.red, self.green, self.blue) # color of text tx2.ViewObject.FontSize = self.FontSize tx2.Label = self.tableau[self.index][2] FreeCAD.Console.PrintMessage("___________________" + "\n") FreeCAD.Console.PrintMessage(texte + "\n") FreeCAD.Console.PrintMessage(self.tableau[self.index][1] + "\n") FreeCAD.Console.PrintMessage(self.tableau[self.index][2] + "\n") FreeCAD.Console.PrintMessage(str(self.FontSize) + "\n") FreeCAD.Console.PrintMessage("___________________" + "\n") FreeCAD.ActiveDocument.recompute() else: FreeCAD.Console.PrintMessage("Not string" + "\n") def on_PB_color(self): self.PB_color.setStyleSheet("background-color: QPalette.Base") self.window.hide() couleur = QtGui.QColorDialog.getColor() if couleur.isValid(): self.red = couleur.redF() self.green = couleur.greenF() self.blue = couleur.blueF() self.alpha = couleur.alphaF() self.PB_color.setStyleSheet("background-color: " + couleur.name()) self.window.show() def on_PB_newPathFont(self): global ui global newPolicePath global setSystemFonts newPolicePath = str(QtGui.QFileDialog.getExistingDirectory(None, "Select new font directory", newPolicePath, QtGui.QFileDialog.ShowDirsOnly)) if newPolicePath: ui.searchFont(newPolicePath) setSystemFonts = 1 def on_PB_systemPath(self): global ui global setSystemFonts setSystemFonts = 0 ui.searchFont(self.pathFont) #______________________________________________________________________________________ doc = FreeCAD.ActiveDocument if doc == None: doc = FreeCAD.newDocument() MainWindow = QtGui.QMainWindow() ui = Ui_MainWindow() ui.setupUi(MainWindow) MainWindow.show()
Link
Il foro TTF Text Font
Le mie macro sopra mario52a gists
Versione
Version = "00.01" Date = "2019/05/10"