How to extend horizontally this inputdlg window?
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Veronika
el 11 de Mzo. de 2017
Comentada: dpb
el 11 de Mzo. de 2017
Dear all,
I have this code for inputdlg window:
prompt = {'Nastavení výšky modelu:','Nastavení jemnosti sítě modelu:','Nastavení počtu elektrod:','Nastavení vzdálenosti mezi elektrodami:','Nastavení poloměru elektrod:','Nastavení tvaru elektrod:','Nastavení jemnosti sítě elektrod:','Nastavení normy - doplnit:'};
dlg_title = 'Nastavení parametrů modelu';
num_lines = 1;
defaultans = {'1','0.8','16','1','0.05','0','0.4','256'};
answer = inputdlg(prompt, dlg_title,num_lines, defaultans);
I would like to extend horizontally this window, because there isn´t display title of window. Can you advise me?
0 comentarios
Respuesta aceptada
Star Strider
el 11 de Mzo. de 2017
All you need to do is to define ‘num_lines’ to be a matrix. Here, I defined them as all being 75 characters wide:
prompt = {'Nastavení výšky modelu:','Nastavení jemnosti sítě modelu:','Nastavení počtu elektrod:','Nastavení vzdálenosti mezi elektrodami:','Nastavení poloměru elektrod:','Nastavení tvaru elektrod:','Nastavení jemnosti sítě elektrod:','Nastavení normy - doplnit:'};
dlg_title = 'Nastavení parametrů modelu';
defaultans = {'1','0.8','16','1','0.05','0','0.4','256'};
num_lines = [ones(size(defaultans')) ones(size(defaultans'))*75];
answer = inputdlg(prompt, dlg_title,num_lines, defaultans);
5 comentarios
Star Strider
el 11 de Mzo. de 2017
I suppose you could somehow recover the title font size, estimate the length (in millimetres or pixels or whatever) necessary to show the entire title, then translate that to the necessary length requirement for ‘num_lines’ as the number of characters in the input window length, and then set that.
It seems to me to be easier to simply update the documentation to include that option as a more obvious solution rather than ‘camouflaging’ it. We’re experienced with MATLAB, and if it takes us time to find it and experiment with it, those less experienced will quite likely never find it.
dpb
el 11 de Mzo. de 2017
I agree at a minimum the doc ought to be improved; I don't do gui's but what few times have used the UIdialogs it has often seemed they've been so neutered from what the underlying OS parameters are that one almost always ends up with some issue if it's more than just the simplest of uses.
Más respuestas (2)
dpb
el 11 de Mzo. de 2017
Editada: dpb
el 11 de Mzo. de 2017
Don't see a way programmatically, TMW didn't expose the rest of the control properties thru the provided interface, unfortunately.
...[Previous use of longer prompt to fudge field width elided for brevity--dpb]...
Just point out one way to implement the TMW-suggestion linked to by IA and as fixed-width by SS above...
N=max(length(dlg_title),max(cellfun(@length,prompt)))+1; % get max length + offset
numel=repmat([1 N],length(prompt),1); % build numel array from inputs
Empirically the '+1' above was just enough; as observed in above comment this is an empirical adjustment, unfortunately.
What a kludge, though! :( This should be cited and an enhancement request submitted to TMW www.mathworks.com official support.
0 comentarios
Image Analyst
el 11 de Mzo. de 2017
There is a way to do it and I give the answer here: https://www.mathworks.com/matlabcentral/answers/101326-how-can-i-make-an-input-dialog-box-created-by-inputdlg-wide-enough-to-show-the-entire-title#comment_234405
1 comentario
dpb
el 11 de Mzo. de 2017
Editada: dpb
el 11 de Mzo. de 2017
Ah...shoulda' read the doc more carefully, the TMW-supplied answer at the above link uses the array form for the num_lines parameter where the first column is number of lines for each prompt while the second is the width of the column. So, add the characters of the difference between length of title and prompt plus some for the field width and the prompt boxes will be wide-enough.
Much cleaner than the above forcing a long-enough title for a prompt, but similar "trick" to force the sizing algorithm to work.
Be much better if TMW would do this internally, though; why wouldn't one if given the task to implement the UI? Or perhaps there was no internal test that uncovered the case of title display length > prompt length so it all seemed to work fine in internal test suite?
Ver también
Categorías
Más información sobre Matrix Indexing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!