Или хотя бы возможность задать значение в пунктах, которое будет соответствовать надписи на экране в текущем масштабе. Прощу прощения, если ранее этот вопрос уже был решен на форуме.
Код: Выделить всё
from PySide2.QtGui import QColor
import axipy
def get_text_style(current_style: axipy.TextStyleEffects) -> int:
style = (
int(current_style.bold) +
int(current_style.italic) * 2 +
int(current_style.underline) * 4 +
int(current_style.shadow) * 32 +
int(current_style.capital) * 512 +
int(current_style.spacing) * 1024
)
if current_style.bg_type == axipy.TextBackgroundType.Frame:
style += 16
elif current_style.bg_type == axipy.TextBackgroundType.Outline:
style += 256
return style
if axipy.data_manager.selection:
for feature in axipy.data_manager.selection:
if isinstance(feature.geometry, axipy.Text):
view = axipy.view_manager.active
prev_text = feature.geometry
prev_style = feature.style
new_size = 100
new_style = axipy.TextStyle(prev_style.fontname, new_size, get_text_style(prev_style), prev_style.color, prev_style.bg_color)
new_style.callout = prev_style.callout;
new_style.callout_style = prev_style.callout_style
new_text = axipy.Text.create_by_style(prev_text.text, prev_text.startPoint, new_style, view, prev_text.angle, prev_text.coordsystem)
new_text.endPoint = prev_text.endPoint
feature.geometry = new_text
axipy.data_manager.selection.update(feature)