How to move figure window to front of all programs?
100 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Brandon
le 1 Oct 2016
Réponse apportée : DGM
le 9 Nov 2024 à 16:31
Is there a way to force a figure window to show in front of all other windows (not just Matlab ones, but other programs)?
0 commentaires
Réponse acceptée
Walter Roberson
le 1 Oct 2016
If you are using MS Windows you could experiment with using the 'topmost' command in Jan's File Exchange contribution https://www.mathworks.com/matlabcentral/fileexchange/31437-windowapi
Plus de réponses (3)
Raph
le 29 Déc 2022
Modifié(e) : Raph
le 29 Déc 2022
This question is ambiguous, but I think what "most people" would be looking for searching for an answer to this question are the following:
How to bring to the front a specific figure handle?
h = figure;
h2 = figure;
% bring figure with handle h to the front
figure(h);
How to bring to the front a known figure with a given name?
figure('Name','A cool figure'); % create a figure and assign a unique name
allfigs = findall(0,'Type', 'figure'); % finds the handles of figures
desiredHandle = findall(allfigs, 'Name', 'A cool figure'); % finds the handles of figure with the unique name
if numel(desiredHandle)==1 % make sure its not deleted or actually is a valid handle
figure(desiredHandle(1)); % brings to front
end
0 commentaires
Kamil Lipinski
le 8 Nov 2024 à 11:54
Modifié(e) : Kamil Lipinski
le 8 Nov 2024 à 11:55
Try this, it takes all figures to the front BFF
0 commentaires
DGM
le 9 Nov 2024 à 16:31
If you want the window to stay on top even if other windows are given focus, you can set that in the window manager.
% you have handle to a figure window
hfig = gcf;
inpict = imread('peppers.png');
imshow(inpict)
% bring it to the front and make it stay atop other windows
stickontop(hfig)
function stickontop(hfig)
% STICKONTOP(HFIG)
% Brings the specified figure window to the front and sets the
% 'always on top' flag. Relies on wmctrl and a linux environment.
% Docked figures are ignored.
% cache current title
oldtitle = get(hfig,'name');
oldntstate = get(hfig,'numbertitle');
% make the window externally identifiable
set(hfig,'name','windowtoberaised');
set(hfig,'numbertitle','off');
% configure properties in the window manager
pause(0.5) % wait for the WM
system('wmctrl -r "windowtoberaised" -b add,above');
% reset to old title
set(hfig,'name',oldtitle);
set(hfig,'numbertitle',oldntstate);
end
Of course, there are things that might cause the window to lose its "always on top" status again, so this might not be as persistent as one might hope.
A similar approach can be used to shade, minimize, or maximize windows, or move windows between workspaces, and it doesn't rely on version-dependent figure properties.
0 commentaires
Voir également
Catégories
En savoir plus sur Interactive Control and Callbacks dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!