WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

uicontrol vs. appdesigner controls

 

Martinuk
Forum-Century

Forum-Century


Beiträge: 208
Anmeldedatum: 18.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.01.2019, 17:10     Titel: uicontrol vs. appdesigner controls
  Antworten mit Zitat      
Hallo,

ich arbeite gerade an einer GUI mit MATLAB R2018b unter Verwendung der neuen "ui" AppDesigner Elemente (zB. uifigure, uibuttons, etc). Dabei verwende ich aber nicht den grafischen AppDesigner Assistenten sondern möchte die GUI via "Programmierung" erstellen.

Nun ist mir aufgefallen, dass hier einige unterschiede zw. den alten (uicontrols) und neuen Steuerelementen (uicontrols AppDesigner) gibt.

Einer der größten Unterschiede ist wohl die Freiheit von der Verwendung von Callback-Funktionen. Während uicontrols stehts die Definition einer primären/allgemeinen Callback-Funktion erlauben stehen bei den AppDesigner nur noch vordefinierte Callback-Funktionen zur Verfügung. Warum ist das denn so, hat hier jemand eine Idee?

Ein weiterer Punkt ist das die neuen AppDesigner Steuerelemente stehts in Pixel-Angaben verwendet werden müssen während die alten uicontrols auch die Einheit "Normalized" erlauben. Wie kann man denn nun die neuen Elemente innerhalb eines uifgiures automatisch mitskalieren wenn man dessen Größe auf dem Bildschirm ändert?

Hier mal 2 einfache Beispiele im alten und neuen Design. Wenn ich in Beispiel 1 die Fenstergröße ändere, dann wird der Button automatisch mitskaliert. Wie muss Beispiel 2 geändert werden um ein gleiches/ähnliches Verhalten zu bekommen?

Code:
function example1
%Beispiel 1

clc, clear all, close all

hFig = figure('Position', [500 500 300 200]);
pushbutton = uicontrol(hFig, 'Style', 'pushbutton', ...
                       'String', 'Push me', ...
                       'Units', 'Normalized', ...
                       'Position', [.3 .4 .4 .2], ...
                       'Callback', @callThisFcn);
                   
    function callThisFcn(obj, ~)
        obj
        disp('Hello World')
    end                  
end


Code:

function example2
%Beispiel 2

clc, clear all, close all

hFig = uifigure('Position', [500 500 300 200]);
pushbutton = uibutton(hFig, 'push', ...
                       'Text', 'Push me', ...
                       'Position', [80 50 150 100], ...
                       'ButtonPushedFcn', @callThisFcn);
                   
    function callThisFcn(obj, ~)
        obj
        disp('Hello World')
    end                  
end
 


Wäre super wenn ihr mit damit helfen könntet. Danke.
Private Nachricht senden Benutzer-Profile anzeigen


Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.