Hi, Miquel.
Thank you for your reply.
I understand you are aware of the issue.
I will look into possible solutions in the code a bit more.
If you could address it when you have time, that would be helpful.
@Milio
Hi, Milio.
Thank you for sharing the solution with me the other day.
I tried the method you shared, but the issue hasn’t improved.
If there are any other areas besides Preferences that might be causing the problem, I’d really appreciate it if you could let me know.
Windows display settings are set to the recommended 150%.
@Miquel
Hi, following up on my previous report about the button label display bug.
We’ve done some more testing and can confirm that the issue only occurs with button labels generated from .pkr files. Other UI elements, like the ‘Space Transfer’ button, are still displaying correctly.
To help move this forward, we’d still be very interested in investigating the code.
Could you point us to the Python module responsible for parsing the .pkr files and generating the button layout?
Any guidance would be greatly appreciated.
some UI are not well supported with scaling. I also have a 150% scaling and get the same issues, but is not a critical bug.
For the picker you can adjust the text size to your particular scaling and it will work
@Miquel
Is it correct to understand that text size should be adjusted in the pkr file settings rather than through processing within the Python module?
it is not ideal, but is a workaround for the moment.

@Miquel
Thank you for your response.
I’ll try the workaround using pkr data.
If I find a good solution, I’ll post a comment.
The main problem is coping with the different configurations across people; some have their main display zoomed by 150% or 125%, while others have 100% but Maya preferences are scaled up. When I create the animpickers, I can ensure it is all readable in my setup, but other animators will have a different text size.
@Milio
You’re absolutely right.
Setting the zoom level to 100% did resolve the issue, but it also affects the display in other applications, so it’s not a fundamental solution.
While editing the pkr file allows for a temporary fix, I’d prefer to avoid having to prepare two versions—one for 100% and one for 150%—every time I create a pkr file.
Another sort of solution could be a little script that modifies the existing picker data in the scene.
That Picker Datas attribute is locked, you could unlock it, search for anything like ‘text_size’: and replace the size value of it. I tested it out and it works nicely!!
@Milio
Indeed, scripting the editing of the PICKER_DATA node would solve the issue if we have the operator at the 4K monitor execute the process.
Thank you so much for exploring various solutions.
And maybe with mayaDpiSetting command in query mode it could be made variable in the tool?
cmds.mayaDpiSetting( query=True, mode=True )
@Milio cc: @Miquel
I prepared a script to directly edit the attributes of the “Picker Datas” you suggested earlier, and the issue has been resolved.
Thank you for your advice.
Awesome!! Can you share it? Would love to see how!
@Milio
Here it is.
Select the settings node and execute it.
from maya import cmds
import re
def replacement_function(match_object):
"""
A function that receives an object matching a regular expression, performs calculations, and returns the resulting string after substitution.
"""
key_part = match_object.group(1)
value_str = match_object.group(2)
new_value = float(value_str) * 0.65
return f"{key_part}{new_value}"
def main():
for sel in cmds.ls(sl=True):
if not cmds.ls(f"{sel}.picker_datas"):
continue
source_string = cmds.getAttr(f"{sel}.picker_datas")
pattern = re.compile(r"('text_size':\s*)(\d+\.?\d*)")
modified_string = re.sub(pattern, replacement_function, source_string)
#
cmds.setAttr(f"{sel}.picker_datas", l=False)
cmds.setAttr(f"{sel}.picker_datas", modified_string, type="string")
cmds.setAttr(f"{sel}.picker_datas", l=True)
main()
So beautiful!! It works perfectly!
I will modify to be able to set it up within the animpicker, I think it would be nice to have two buttons to increase and decrease the font size depending on the user preferences.
Thank you for sharing!
haha! Didn’t have to do anything more than (I assume there’s a PICKER_DATA in the scene) set the increasing code to new_value = float(value_str) * 1.25 and 0.75 to decrease the font size. Works like a charm!
Great stuff! Really appreciate you sharing this.
I don’t have a Maya instance to test this now. But I imagine it has a node type you can find them all from, and modify all existing picker nodes at once.
Or from yoh’s script, source_string = cmds.getAttr(f"{sel}.picker_datas") you should be able to query nodes by cmds.ls("*.picker_datas") which gets the attributes directly, and then loop directly over the attributes rather than finding the nodes.
(But that is from memory, and PyMEL, so I’m not sure about cmds.)
Also, that dropbox video doesn’t seem to be supported on the forum. Here is the raw link:
https://www.dropbox.com/scl/fi/ymr07sbu4gkbujx1mr8eg/animpicker_FontSize_Cropped.mp4?rlkey=6qmezmq4cuycrqedfctne11yw&dl=0
Hi! thanks for all the feedback and ideas!
I have created a ticket for this one
Also, I have other improvements planned for the anim_picker


