How can I find an uifigure? (2024)

74 Ansichten (letzte 30 Tage)

Ältere Kommentare anzeigen

Clovis Bonavides am 25 Jan. 2020

  • Verknüpfen

    Direkter Link zu dieser Frage

    https://de.mathworks.com/matlabcentral/answers/501966-how-can-i-find-an-uifigure

  • Verknüpfen

    Direkter Link zu dieser Frage

    https://de.mathworks.com/matlabcentral/answers/501966-how-can-i-find-an-uifigure

Kommentiert: Adam Danz am 28 Jan. 2020

Akzeptierte Antwort: Adam Danz

I am mixing some old GUIs designed with GUIDE with uifigures, so I can use the uitree object (and some others).

However, when I try to establish communication between some functions in my GUIs (need to click on an ax and then assign some value from a tree node and insert into a table) I cannot find the uifigure - neither using "findobj ('Type', 'figure')" nor using "findall (groot)". Before I started this design I did not even consider this possibility, thought it would be something quite simple - which it probably is but I cannot get past this point.

Would really appreciate any answer or a possible solution to this issue.

6 Kommentare

4 ältere Kommentare anzeigen4 ältere Kommentare ausblenden

Allen am 25 Jan. 2020

Direkter Link zu diesem Kommentar

https://de.mathworks.com/matlabcentral/answers/501966-how-can-i-find-an-uifigure#comment_789941

  • Verknüpfen

    Direkter Link zu diesem Kommentar

    https://de.mathworks.com/matlabcentral/answers/501966-how-can-i-find-an-uifigure#comment_789941

In MATLAB Online öffnen

I am able to create a figure using uifigure and then find the handle using findall(groot) using R2019b. Have you tried assigning a name to the figure during creation? If not, it might be worth a try to see if you are not locating it simply because it is hard to identify amoung a list of Figures when using findall.

uifigure('Name','YourFigureName')

Clovis Bonavides am 26 Jan. 2020

Direkter Link zu diesem Kommentar

https://de.mathworks.com/matlabcentral/answers/501966-how-can-i-find-an-uifigure#comment_790028

  • Verknüpfen

    Direkter Link zu diesem Kommentar

    https://de.mathworks.com/matlabcentral/answers/501966-how-can-i-find-an-uifigure#comment_790028

Thanks to everyone for your hep. However the problem is more complicated - I had already tried searching with both Type, Tag, etc. I forgot to mention about the handle visibility (see Walter‘s answer) but it cannot be set to ON if - almost unbelievable! - the uifigure was created using the uifigure function, which is here the case. I am expecting an answer from Mathworks about this case.

Adam Danz am 26 Jan. 2020

Direkter Link zu diesem Kommentar

https://de.mathworks.com/matlabcentral/answers/501966-how-can-i-find-an-uifigure#comment_790030

Have you tried findall without the tag? That should work with uifigures / appdesigner.

Walter Roberson am 26 Jan. 2020

Direkter Link zu diesem Kommentar

https://de.mathworks.com/matlabcentral/answers/501966-how-can-i-find-an-uifigure#comment_790033

  • Verknüpfen

    Direkter Link zu diesem Kommentar

    https://de.mathworks.com/matlabcentral/answers/501966-how-can-i-find-an-uifigure#comment_790033

In MATLAB Online öffnen

I had no problem using

H = uifigure('handlevisibility', 'on')

when I tested.

Clovis Bonavides am 26 Jan. 2020

Direkter Link zu diesem Kommentar

https://de.mathworks.com/matlabcentral/answers/501966-how-can-i-find-an-uifigure#comment_790104

  • Verknüpfen

    Direkter Link zu diesem Kommentar

    https://de.mathworks.com/matlabcentral/answers/501966-how-can-i-find-an-uifigure#comment_790104

Walter - thanks! But I get this err msg:

" Error using appwindowfactory

Functionality not supported with figures created with the uifigure function. For more information, see

Graphics Support in App Designer. "

Problem is that right now I must use figures as I am adapting some existing code and must try to avoid opening a new window as much as possible. Cannot use the appdesigner in this case without adding some substantial amount of work...

Adam Danz am 26 Jan. 2020

Direkter Link zu diesem Kommentar

https://de.mathworks.com/matlabcentral/answers/501966-how-can-i-find-an-uifigure#comment_790145

  • Verknüpfen

    Direkter Link zu diesem Kommentar

    https://de.mathworks.com/matlabcentral/answers/501966-how-can-i-find-an-uifigure#comment_790145

Bearbeitet: Adam Danz am 26 Jan. 2020

In r2019b the handlevisibility property of uifigures can only be set to off.

https://www.mathworks.com/help/matlab/ref/matlab.ui.figureappd-properties.html#bu4i700-1-HandleVisibility

When it's set to "on" you get a "functionality not supported" error. Maybe that will change in 2020a.

Melden Sie sich an, um zu kommentieren.

Melden Sie sich an, um diese Frage zu beantworten.

Akzeptierte Antwort

Adam Danz am 26 Jan. 2020

  • Verknüpfen

    Direkter Link zu dieser Antwort

    https://de.mathworks.com/matlabcentral/answers/501966-how-can-i-find-an-uifigure#answer_412040

  • Verknüpfen

    Direkter Link zu dieser Antwort

    https://de.mathworks.com/matlabcentral/answers/501966-how-can-i-find-an-uifigure#answer_412040

Bearbeitet: Adam Danz am 27 Jan. 2020

In MATLAB Online öffnen

You can find the uifigure handle using findall() but it's not recommended to merely find handles to all figures because it's quite likely that at some point other figures will exist other than your GUI.

To find the handle to your GUI figure, add a long, descriptive, unique name to the tag property of your GUI. Then specify that unique tag name when searching for the GUI handle.

uif = uifigure('Tag','MyUniqueTag'); % a demo ui-figure with a unique tag name

h = findall(0,'Type','figure','tag','MyUniqueTag') % Get the handle.

To search for all figures (hidden or not)

h = findall(0,'Type','figure');

0 Kommentare

-2 ältere Kommentare anzeigen-2 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

Walter Roberson am 26 Jan. 2020

  • Verknüpfen

    Direkter Link zu dieser Antwort

    https://de.mathworks.com/matlabcentral/answers/501966-how-can-i-find-an-uifigure#answer_412047

  • Verknüpfen

    Direkter Link zu dieser Antwort

    https://de.mathworks.com/matlabcentral/answers/501966-how-can-i-find-an-uifigure#answer_412047

In MATLAB Online öffnen

If you create the uifigure with HandleVisibility, 'on', then you can

findobj(groot, 'type', 'figure')

otherwise you need findall() because the handle visibility for uifigure defaults to 'off'

0 Kommentare

-2 ältere Kommentare anzeigen-2 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

Clovis Bonavides am 28 Jan. 2020

  • Verknüpfen

    Direkter Link zu dieser Antwort

    https://de.mathworks.com/matlabcentral/answers/501966-how-can-i-find-an-uifigure#answer_412476

  • Verknüpfen

    Direkter Link zu dieser Antwort

    https://de.mathworks.com/matlabcentral/answers/501966-how-can-i-find-an-uifigure#answer_412476

None of the solutions proposed up to this point does work. The visibility of the uifigure created programmatically cannot be set to ON - which is probably a bug. Hopefully this will be fixed in the next coming version. Anyway, many thanks to all those who tried to help me. I actually got around by working creating a new window with the uifigure (tree), something I much wanted to avoid.

3 Kommentare

1 älteren Kommentar anzeigen1 älteren Kommentar ausblenden

Adam Danz am 28 Jan. 2020

Direkter Link zu diesem Kommentar

https://de.mathworks.com/matlabcentral/answers/501966-how-can-i-find-an-uifigure#comment_790938

  • Verknüpfen

    Direkter Link zu diesem Kommentar

    https://de.mathworks.com/matlabcentral/answers/501966-how-can-i-find-an-uifigure#comment_790938

Bearbeitet: Adam Danz am 28 Jan. 2020

In MATLAB Online öffnen

My answer absolutely works in r2019b (the release you're using).

% Create a UIFigure

uif = uifigure('Name','ThisWorks!');

% Find handles to all figures

h = findall(0,'Type','figure')

Result

h =

Figure (ThisWorks!) with properties:

Number: []

Name: 'ThisWorks!'

Color: [0.9400 0.9400 0.9400]

Position: [508 656 583 437]

Units: 'pixels'

Show all properties

If it doesn't work for you then something else is wrong.

Adam Danz am 28 Jan. 2020

Direkter Link zu diesem Kommentar

https://de.mathworks.com/matlabcentral/answers/501966-how-can-i-find-an-uifigure#comment_790978

  • Verknüpfen

    Direkter Link zu diesem Kommentar

    https://de.mathworks.com/matlabcentral/answers/501966-how-can-i-find-an-uifigure#comment_790978

Bearbeitet: Adam Danz am 28 Jan. 2020

Clovis Bonavides's answer moved here as a comment

Adam, you are absolutely correct. It DOES work in vers 2019.b, which I just got loaded.

In vers 2018b it doesn't work as the uifigure's handle visibility is "hardwired" to "OFF" and cannot be changed through the uifigure generation code.

Thanks!

Adam Danz am 28 Jan. 2020

Direkter Link zu diesem Kommentar

https://de.mathworks.com/matlabcentral/answers/501966-how-can-i-find-an-uifigure#comment_790982

  • Verknüpfen

    Direkter Link zu diesem Kommentar

    https://de.mathworks.com/matlabcentral/answers/501966-how-can-i-find-an-uifigure#comment_790982

On the right hand column of this page you can see the Product and Release fields where you entered r2019b. This is very helpful info and most people don't fill it out (so, thank you!).

BTW, I just tested the lines in my comment above in r2018b and it also works there, too. Maybe something was copied wrong when you were trying it out.

Melden Sie sich an, um zu kommentieren.

Melden Sie sich an, um diese Frage zu beantworten.

Siehe auch

Kategorien

MATLABApp BuildingDevelop Apps ProgrammaticallyDevelop uifigure-Based Apps

Mehr zu Develop uifigure-Based Apps finden Sie in Help Center und File Exchange

Tags

  • find uifigure findobj uitree findall

Produkte

  • MATLAB

Version

R2019b

Community Treasure Hunt

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

Start Hunting!

Es ist ein Fehler aufgetreten

Da Änderungen an der Seite vorgenommen wurden, kann diese Aktion nicht abgeschlossen werden. Laden Sie die Seite neu, um sie im aktualisierten Zustand anzuzeigen.


Translated by How can I find an uifigure? (14)

How can I find an uifigure? (15)

Website auswählen

Wählen Sie eine Website aus, um übersetzte Inhalte (sofern verfügbar) sowie lokale Veranstaltungen und Angebote anzuzeigen. Auf der Grundlage Ihres Standorts empfehlen wir Ihnen die folgende Auswahl: .

Sie können auch eine Website aus der folgenden Liste auswählen:

Amerika

  • América Latina (Español)
  • Canada (English)
  • United States (English)

Europa

  • Belgium (English)
  • Denmark (English)
  • Deutschland (Deutsch)
  • España (Español)
  • Finland (English)
  • France (Français)
  • Ireland (English)
  • Italia (Italiano)
  • Luxembourg (English)
  • Netherlands (English)
  • Norway (English)
  • Österreich (Deutsch)
  • Portugal (English)
  • Sweden (English)
  • Switzerland
    • Deutsch
    • English
    • Français
  • United Kingdom(English)

Asien-Pazifik

  • Australia (English)
  • India (English)
  • New Zealand (English)
  • 中国
  • 日本Japanese (日本語)
  • 한국Korean (한국어)

Kontakt zu Ihrer lokalen Niederlassung

How can I find an uifigure? (2024)

References

Top Articles
Latest Posts
Recommended Articles
Article information

Author: Arline Emard IV

Last Updated:

Views: 5369

Rating: 4.1 / 5 (72 voted)

Reviews: 87% of readers found this page helpful

Author information

Name: Arline Emard IV

Birthday: 1996-07-10

Address: 8912 Hintz Shore, West Louie, AZ 69363-0747

Phone: +13454700762376

Job: Administration Technician

Hobby: Paintball, Horseback riding, Cycling, Running, Macrame, Playing musical instruments, Soapmaking

Introduction: My name is Arline Emard IV, I am a cheerful, gorgeous, colorful, joyous, excited, super, inquisitive person who loves writing and wants to share my knowledge and understanding with you.