How to get larger font size for inputdlg, MATLAB ver 2019a

53 visualizaciones (últimos 30 días)
Anne Davenport
Anne Davenport el 11 de Mzo. de 2024
Movida: Voss el 11 de Mzo. de 2024
I am using MATLAB 2019a (the latest MATLAB version my network administration allows) and I have been unable to change the font size for the input boxes for inputdlg. How can I do this?
Some things I have tried:
opts.Interpreter = 'tex';
opts.Resize = 'on';
dlgtitle = 'Simulation Inputs';
prompt = {'\fontsize{12} Input #0:', ...
'Input #1:','Input #2','Input #3', ...
'\fontsize{12} Input #4:', ...
'Input #5:','Input #6:'};
fieldsize = [2 45; 1 45; 1 45; 1 45; 1 45; 1 45; 1 45];
definput = {'\fontsize{12} 0.3', ...
'60','29','60', ...
'\fontsize{12} 0', ...
'377','-385'}; % default values
%answer = inputdlg(prompt,dlgtitle,fieldsize,definput);
answer = inputdlg(prompt,dlgtitle,fieldsize,definput,opts);
This code produces the input dialog box with the 'prompt' values with the font size specified. However, the definput values are not. I just get the text '\fontsize{12} Input #0:' and '\fontsize{12} 0.3' without any change in the font size.
I got the '\fontsize' code from:
https://www.mathworks.com/help/matlab/ref/inputdlg.html
BTW, I found the instructions for the dialog box settings to be cryptic and they have nowhere near enough examples to show what they mean, especially since the syntax has to be perfect for the commands to work.
I also notice that the command:
set(0, 'DefaultUICOntrolFontSize', 12);
works just fine for listdlg for making the fonts larger, but has no effect on inputdlg. That is just irritating.
I did look at this answer that implies that the fontsize in the input boxes can be changed, but the answer was unhelpful and more about the box size:

Respuestas (1)

Voss
Voss el 11 de Mzo. de 2024
Editada: Voss el 11 de Mzo. de 2024
The Accepted Answer in the thread you linked to actually contains all the information you need.
The only thing I would clarify is in reference to what Walter said in his comment: "You might need to copy some other functions as well." I needed to copy two functions (in addition to copying and renaming inputdlg.m itself) in order to get it to work (in R2022a):
  • <matlabroot>\toolbox\matlab\uitools\private\getnicedialoglocation.m
  • <matlabroot>\toolbox\matlab\uitools\private\setdefaultbutton.m
After copying those files, renaming inputdlg.m to inputdlg_modified.m, and changing the line in inputdlg_modified.m that uses FactoryUicontrolFontSize to use DefaultUicontrolFontSize instead, as described in the linked thread, I ran the following code:
opts.Resize = 'on';
dlgtitle = 'Simulation Inputs';
prompt = {'Input #0:', ...
'Input #1:','Input #2','Input #3', ...
'Input #4:', ...
'Input #5:','Input #6:'};
fieldsize = [2 45; 1 45; 1 45; 1 45; 1 45; 1 45; 1 45];
definput = {'0.3', ...
'60','29','60', ...
'0', ...
'377','-385'}; % default values
fs_uic = get(groot(),'DefaultUIControlFontSize');
set(groot(),'DefaultUIControlFontSize',16);
answer = inputdlg_modified(prompt,dlgtitle,fieldsize,definput,opts);
set(groot(),'DefaultUIControlFontSize',fs_uic);
and got the following input dialog window:
  7 comentarios
Walter Roberson
Walter Roberson el 11 de Mzo. de 2024
Editada: Walter Roberson el 11 de Mzo. de 2024
The following has been checked against R2019a, and should work for Windows, MacOS, or Linux
if ~exist('private', 'dir'); mkdir('private'); end
PR = fullfile(matlabroot, 'toolbox/matlab/uitools/private');
copyfile( fullfile(PR, 'getnicedialoglocation.m', 'private/'));
copyfile( fullfile(PR, 'setdefaultbutton.m'), 'private/');
Anne Davenport
Anne Davenport el 11 de Mzo. de 2024
Movida: Voss el 11 de Mzo. de 2024
While I appreciate the information and your looking into this, and I'm glad to know what the issues are, I have to drop this.
I started with the assumption that this wouldn't be too hard since it's so simple with listdlg. But it isn't
But the larger font is a 'Nice to Have' thing on my project. I'll just deal with the smaller fonts. If Mathworks comes up with a less complex method for changing the fontsize for inputdlg, I'll come back a look at this. For now, I'm out of time and I have to move on.

Iniciar sesión para comentar.

Categorías

Más información sobre Environment and Settings en Help Center y File Exchange.

Productos


Versión

R2019a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by