Matlab GUI elements disappear on newer version of Matlab

Hi,
I just upgraded from matlab 2014 to matlab 2022 and a gui i was working on which was fine on matlab 2014 has all it's pushbutton missing and an entire buttongroup missing and other things and i don't really understand why. Here is the difference between the gui in the two versions of matlab :
and here is the gui code if anyone can help : (Am i using outdated code or something like that ?)
function h0=kgui4n
%KGUI4N construction de la boite de dialogue pour KGEXEC4N
%CAVIAR2, © ALSTOM + OL 1999/12-2003/03
blanc=[1 1 1];
gris=blanc*0.75;
global language
global first_time
lg=find(strcmp(getpref('kgexec4','LangGui','fr'),{'fr','en'}));
if (first_time==1)
if(language==1)
lg=1;
else
lg=2;
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% montre la fenêtre si elle existe déjà
hFig=findobj(allchild(0),'Tag','kgui4n');
if ~isempty(hFig), figure(hFig(1)), return, end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%chaines ds ttes les langues
ch00={
'Norme harmonique'
'Harmonic standard'};
ch02={
'Annuler'
'Cancel'};
ch05={
'Choix du gabarit à tracer en superposition sur les spectres'
'Choose harmonic gauge to plot over spectrums'};
ch10={
'Aucune norme en courant '
'None'};
ch20={
'CEI 61000-2-2 (2018)'
'IEC 61000-2-2 (2018)'};
ch21={
'Limite de susceptibilité des équipements BT selon la CEI1000-2-2'
'Susceptibility limit of LV equipments according to IEC1000-2-2'};
ch31={
'Limite en courant selon le contrat Emeraude d''EDF'
'Current limits according to EDF Emeraude agreement (France)'};
ch32={
'Courant souscrit en ampères'
'Courant souscrit en ampères'};
ch41={
'Limite en courant selon la norme britannique G5/3'
'Current limits according to UK G5/3 standard'};
ch43={
'Niveau de tension considéré'
'Voltage level to be considered'};
ch50={
'GB/T 14549 (1993) (Chine)'
'GB/T 14549 (1993) (China)'};
ch51={
'Limite en courant selon la norme chinoise'
'Current limits according to chineese standards'};
ch53={
'Niveau de tension considéré'
'Voltage level to be considered'};
ch54={
'Puissance de court circuit réelle'
'Real short circuit capacity'};
ch55={
'Coefficient de courant'
'Ratio of negotiated capacity'};
ch60={
'Gabarit libre en tension'
'User defined voltage gauge'};
ch61={
'Gabarit quelconque sur les tensions'
'User defined limits for voltages'};
ch63={
'Limite pour tous les rangs entiers à partir de 2 (%)'
'Limit for all integer harmonic orders beginning with 2nd order (%)'};
ch70={
'Gabarit libre en courant'
'User defined current gauge'};
ch71={
'Gabarit quelconque sur les courants'
'User defined limits for currents'};
ch73={
'Limite pour tous les rangs entiers à partir de 2 (A)'
'Limit for all integer harmonic orders beginning with 2nd order (A)'};
ch81={
'Limite en courant selon IEEE519 section 10'
'Current limit according to IEEE519 section 10'};
ch83={
'Niveau de tension considéré'
'Voltage level to be considered'};
ch85={
'Courant maximum IL (A)'
'Maximum load current IL (A)'};
ch87={
'ISC/IL = courant de court-circuit sur courant maximum'
'ISC/IL = Short-circuit current divided by maximum current'};
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%figure
h0=figure(...
'Filename','kgui4n.m',...
'Units','characters',...
'DefaultUicontrolUnits','characters',...
'Color',gris,...
'IntegerHandle','off',...
'MenuBar','none',...
'Name',ch00{lg},...
'NumberTitle','off',...
'Position',[100 30 110 25],...
'Resize','on',...
'Tag','NormeDlg',...
'WindowStyle','modal',...
'ToolBar','none');
%titre
uicontrol(h0,'Style','text',...
'BackgroundColor',gris,...
'HorizontalAlignment','center',...
'Position',[10 22 85 1],...
'String',[ch05{lg} ' :']);
%bouton OK
handles.X=0;
handles.button = uicontrol(h0,'Style','pushbutton',...
'BackgroundColor',gris,...
'Position',[27 0.5 16 2],...
'String','OK',...
'Tag','NormeOK',...
'Callback',@buttonCB);
guidata(h0,handles);
%bouton annuler
uicontrol(h0,'Style','pushbutton',...
'BackgroundColor',gris,...
'Callback','close(gcbf)',...
'Position',[51 0.5 16 2],...
'String',ch02{lg});
%bouton aide
uicontrol(h0,'Style','pushbutton',...
'BackgroundColor',gris,...
'Callback','helpwin NormesHarmo',...
'Position',[75 0.5 7 2],...
'String','?');
%Buttongroup1
bg = uibuttongroup(h0,'Visible','on',...
'BackgroundColor',gris);
%Aucune
ra(1) = uicontrol(bg,'Style','radiobutton',...
'BackgroundColor',gris,...
'Position',[5 20 30 1.7],...
'String',ch10{lg},...
'Tag','Norme0');
uicontrol(h0,'Style','text',...
'HorizontalAlignment','left',...
'BackgroundColor',gris,...
'Position',[40 20.35 7 1],...
'String','--',...
'Tag','Param0');
%IEEE519
ra(3) = uicontrol(bg,'Style','radiobutton',...
'Callback',@Scr519,...
'BackgroundColor',gris,...
'Position',[5 18 30 1.7],...
'String','IEEE519 (2022)',...
'Tag','Norme519',...
'TooltipString','Param519-1');
prmsA{3} = uicontrol(h0,'Style','popupmenu',...
'BackgroundColor',blanc,...
'Callback',@Scr519,...
'Position',[40 18 17 1.7],...
'String',['120V-69kV|70-161kV|162kV & +'],...
'Tag','Param519-1',...
'TooltipString',ch83{lg});
prmsA{3}(2)= uicontrol(h0,'Style','edit',...
'BackgroundColor',blanc,...
'HorizontalAlignment','right',...
'Position',[58 18 8 1.7],...
'String','1',...
'Tag','Param519-2',...
'TooltipString',ch85{lg});
uicontrol(h0,'Style','text',...
'BackgroundColor',gris,...
'HorizontalAlignment','left',...
'Position',[66.5 18.35 4 1],...
'String','A');
prmsA{3}(3)=uicontrol(h0,'Style','popupmenu',...
'BackgroundColor',blanc,...
'Position',[71 18 18 1.7],...
'String','Iscr<20|20<Iscr<50|50<Iscr<100|100<Iscr<1k|1000<Iscr',...
'Tag','Param519-3',...
'TooltipString',ch87{lg});
prmsA{3}(4)=uicontrol(h0,'Style','popupmenu',...
'BackgroundColor',blanc,...
'Position',[90 18 17 1.7],...
'String',['6 pulses|12 pulses|18 pulses|24 pulses|30 pulses|36 pulses|42 pulses|48 pulses'],...
'Tag','Param519-4');
%Emeraude
ra(4) = uicontrol(bg,'Style','radiobutton',...
'BackgroundColor',gris,...
'Position',[5 16 30 1.7],...
'String','RTE 15-07-06/Enedis-PRO-RES_50E ',...
'Tag','NormeEm',...
'TooltipString','ParamEm');
prmsA{4}=uicontrol(h0,'Style','popupmenu',...
'BackgroundColor',blanc,...
'HorizontalAlignment','right',...
'Position',[40 16 38 1.7],...
'String',['HTA (1kV<Un<=50kV)|HTB1-HTB2 (50kV<Un<=350kV)|HTB3 (350kV<Un<=500kV) '],...
'Tag','ParamEm',...
'TooltipString',ch32{lg});
prmsA{4}(2)=uicontrol(h0,'Style','edit',...
'BackgroundColor',blanc,...
'HorizontalAlignment','right',...
'Position',[79.5 16 10 1.7],...
'String','1',...
'Tag','ParamEm-2',...
'TooltipString',ch32{lg});
uicontrol(h0,'Style','text',...
'BackgroundColor',gris,...
'HorizontalAlignment','left',...
'Position',[89.5 16.35 4 1],...
'String','A');
prmsA{4}(3)=uicontrol(h0,'Style','edit',...
'HorizontalAlignment','right',...
'BackgroundColor',blanc,...
'Enable','off',...
'Position',[94 16 8 1.7],...
'String','1',...
'Tag','ParamEm-3',...
'Value',1);
uicontrol(h0,'Style','text',...
'BackgroundColor',gris,...
'HorizontalAlignment','left',...
'Position',[102.5 16.35 5 1],...
'String','Coefficient');
%Chine
ra(5) = uicontrol(bg,'Style','radiobutton',...
'BackgroundColor',gris,...
'Position',[5 14 30 1.7],...
'String',ch50{lg},...
'Tag','NormeCh',...
'TooltipString','ParamCh');
prmsA{5}=uicontrol(h0,'Style','popupmenu',...
'BackgroundColor',blanc,...
'Enable','off',...
'Position',[40 14 17 1.7],...
'String',['380V|6kV|10kV|35kV|66kV|110kV|220kV'],...
'Tag','ParamCh',...
'TooltipString',ch53{lg},...
'Value',1);
prmsA{5}(2)=uicontrol(h0,'Style','edit',...
'HorizontalAlignment','right',...
'BackgroundColor',blanc,...
'Enable','off',...
'Position',[57.5 14 8 1.7],...
'String','1',...
'Tag','ParamCh-2',...
'TooltipString',ch54{lg},...
'Value',1);
uicontrol(h0,'Style','text',...
'BackgroundColor',gris,...
'HorizontalAlignment','left',...
'Position',[66 14.35 5 1],...
'String','MVA');
prmsA{5}(3)=uicontrol(h0,'Style','edit',...
'HorizontalAlignment','right',...
'BackgroundColor',blanc,...
'Enable','off',...
'Position',[73 14 8 1.7],...
'String','1',...
'Tag','ParamCh-3',...
'TooltipString',ch55{lg},...
'Value',1);
uicontrol(h0,'Style','text',...
'BackgroundColor',gris,...
'HorizontalAlignment','left',...
'Position',[81.5 14.35 5 1],...
'String','Coefficient');
%gabarit libre en courant
ra(2) = uicontrol(bg,'Style','radiobutton',...
'BackgroundColor',gris,...
'Position',[5 12 34 1.7],...
'String',ch70{lg},...
'Tag','NormeUsrI',...
'TooltipString','ParamUsrI');
prmsA{2}= uicontrol(h0,'Style','edit',...
'BackgroundColor',blanc,...
'Enable','off',...
'HorizontalAlignment','left',...
'Position',[40 12 30 1.7],...
'String','10./[2:50]',...
'Tag','ParamUsrI',...
'TooltipString',ch73{lg});
%Buttongroup2
bg2 = uibuttongroup(h0,'Visible','on',...
'BackgroundColor',gris);
%1000-2-2
rb(1) = uicontrol(bg2,'Style','radiobutton',...
'BackgroundColor',gris,...
'Position',[5 6.5 30 1.7],...
'String',ch20{lg},...
'Tag','Norme1000',...
'TooltipString','Param1000');
prmsB{1}=uicontrol(h0,'Style','popupmenu',...
'Callback',@Scr1000,...
'BackgroundColor',blanc,...
'Position',[40 6.5 23 1.7],...
'String',['réseau public|réseau industriel'],...
'Tag','Param1000');
prmsB{1}(2)=uicontrol(h0,'Style','popupmenu',...
'BackgroundColor',blanc,...
'Position',[65 6.5 23 1.7],...
'String',['LV (Un<=1kV)|MV (1kV<Un<=35kV)|HV (35kV<Un<=230kV)|EHV (230kV<Un)'],...
'Tag','Param1000-2');
prmsB{1}(3)=uicontrol(h0,'Style','edit',...
'HorizontalAlignment','right',...
'BackgroundColor',blanc,...
'Position',[88.5 6.5 8 1.7],...
'String','1',...
'Tag','Param1000-3',...
'Value',1);
uicontrol(h0,'Style','text',...
'BackgroundColor',gris,...
'HorizontalAlignment','right',...
'Position',[97 6.85 5 1],...
'String','Coefficient');
%gabarit libre en tension
rb(2) = uicontrol(bg2,'Style','radiobutton',...
'BackgroundColor',gris,...
'Position',[5 4.5 34 1.7],...
'String',ch60{lg},...
'Tag','NormeUsrV',...
'TooltipString','ParamUsrV');
prmsB{2}=uicontrol(h0,'Style','edit',...
'BackgroundColor',blanc,...
'Enable','off',...
'HorizontalAlignment','left',...
'Position',[40 4.5 48 1.7],...
'String','10./[2:50]',...
'Tag','ParamUsrV',...
'TooltipString',ch63{lg});
%EN 50160
rb(3) = uicontrol(bg2,'Style','radiobutton',...
'BackgroundColor',gris,...
'Position',[5 2.5 30 1.7],...
'String','EN 50160 (2019)',...
'Tag','Norme50160',...
'TooltipString','Param50160');
prmsB{3}=uicontrol(h0,'Style','popupmenu',...
'BackgroundColor',blanc,...
'Position',[40 2.5 17 1.7],...
'String',['LV (230V-1kV)|MV (1-36kV)|HV (36-150kV)|A-dérivation'],...
'Tag','Param50160',...
'Value',1);
prmsB{3}(2)=uicontrol(h0,'Style','edit',...
'HorizontalAlignment','right',...
'BackgroundColor',blanc,...
'Enable','off',...
'Position',[58.5 2.5 8 1.7],...
'String','1',...
'Tag','Param50160-2',...
'Value',1);
uicontrol(h0,'Style','text',...
'BackgroundColor',gris,...
'HorizontalAlignment','left',...
'Position',[67 2.85 5 1],...
'String','Coefficient');
%G5/5
rb(4) = uicontrol(bg2,'Style','radiobutton',...
'BackgroundColor',gris,...
'Position',[5 8.5 30 1.7],...
'String','G5/5 (2020)',...
'Tag','NormeG55',...
'TooltipString','ParamG55');
prmsB{4}=uicontrol(h0,'Style','popupmenu',...
'BackgroundColor',blanc,...
'Position',[40 8.5 23 1.7],...
'String',['Un<=0.4kV|0.4<Un<=25kV|25kV<Un<66kV|66kV<Un<=230kV|Un>230kV'],...
'Tag','ParamG55',...
'TooltipString',ch43{lg});
prmsB{4}(2)=uicontrol(h0,'Style','edit',...
'HorizontalAlignment','right',...
'BackgroundColor',blanc,...
'Enable','off',...
'Position',[63.5 8.5 8 1.7],...
'String','1',...
'Tag','ParamG55-2',...
'Value',1);
uicontrol(h0,'Style','text',...
'BackgroundColor',gris,...
'HorizontalAlignment','left',...
'Position',[72 8.85 5 1],...
'String','Coefficient');
%Aucune
rb(5) = uicontrol(bg2,'Style','radiobutton',...
'BackgroundColor',gris,...
'Position',[5 10.25 30 1.7],...
'String','Aucune norme en tension',...
'Tag','Norme02');
uicontrol(h0,'Style','text',...
'HorizontalAlignment','left',...
'BackgroundColor',gris,...
'Position',[40 10.5 7 1],...
'String','--',...
'Tag','Param02');

 Akzeptierte Antwort

Jan
Jan am 21 Nov. 2022

0 Stimmen

The uibuttongroup hides objects, which have been created before in modern Matlab versions.
Set a position of the uibuttongroup's and set the position of the buttons inside relative to the parent location.
You can see the effect by using different background colors for the uibuttongroups and step through the code line by line.

4 Kommentare

ok thank you very much
Ali
Ali am 21 Nov. 2022
Bearbeitet: Ali am 21 Nov. 2022
@Jan I did as you said and that allowed to show the part that where hidden but when i try to put a position in the uibuttongroup and i place inside some radiobutton it never shows up i can't see neither the uibuttongroup even if i put some colors nor the radiobutton inside of them.
Here is an exemple :
function test2(init)
%UNTITLED3 Summary of this function goes here
% Detailed explanation goes here
gris=[0.75 0.75 0.75];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% montre la fenêtre si elle existe déjà
hFig=findobj(allchild(0),'Tag','test');
if ~isempty(hFig), figure(hFig(1)), return, end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%chaines ds ttes les langues
ch00={
'Choix des valeurs à exporter'
'Exported values choice'};
ch01={
'Choix barre'
'Bar'};
ch02={
'Choix élément'
'Element'};
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Create figure window
h0=figure('Units','points', ...
'FileName','test2.m', ...
'Color',gris,...
'HandleVisibility','on', ...
'IntegerHandle','on', ...
'MenuBar','none', ...
'Name','Choix des valeurs à exporter', ...
'Position',[500 500 500 500],...
'NumberTitle','off', ...
'Resize','off', ...
'Tag','kgui4e',...
'ToolBar','none');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Create buttons figure : choix toggle
%Buttongroup1
bg = uibuttongroup('Position',[44 95 215 50]);
r1 = uicontrol(bg,'Style','radiobutton',...
'Position',[8 3 200 20],...
'String','Export des amplitudes et phases',...
'Tag','A&P1',...
'Value',1);
r2 = uicontrol(bg,'Style','radiobutton',...
'Position',[8 25 200 20],...
'String','Export des amplitudes',...
'Tag','ampli1',...
'Value',0);
bg.Visible = 'on'
%Buttongroup2
bg2 = uibuttongroup('Position',[414 74 215 72]);
b1 = uicontrol(bg2,'Style','radiobutton',...
'Position',[8 24 180 20],...
'String','Export des amplitudes et phases',...
'Tag','A&P2',...
'Value',1);
b2 = uicontrol(bg2,'Style','radiobutton',...
'Position',[8 46 180 20],...
'String','Export des amplitudes',...
'Tag','ampli2',...
'Value',0);
b3 = uicontrol(bg2,'Style','radiobutton',...
'Position',[8 2 180 20],...
'String','Résultat filtre',...
'Tag','PostCaviar',...
'Value',0);
bg2.Visible = 'on'
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Create 2 List box of Barre and Element
uicontrol(h0,'Style','text',...
'BackgroundColor',gris,...
'Position',[50 495 200 20],...
'Tag','TitreBarre',...
'String','Liste des Barres');
uicontrol(h0,'Style','listbox',...
'BackgroundColor',gris,...
'Position',[50 150 200 350],...
'Tag','Barres',...
'max',5,...
'min',1);
uicontrol(h0,'Style','text',...
'BackgroundColor',gris,...
'Position',[420 495 200 20],...
'Tag','TitreElement',...
'String','Liste des Elements');
uicontrol(h0,'Style','listbox',...
'BackgroundColor',gris,...
'Position',[420 150 200 350],...
'Tag','ELement',...
'max',5,...
'min',1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Create 2 pushbuttons OK and Close
uicontrol(h0,'Style','pushbutton',...
'BackgroundColor',gris,...
'Position',[250 30 65 35],...
'String','OK',...
'Tag','OptOK',...
'Callback',@(o,~) set(o,'UserData',true));
uicontrol(h0,'Style','pushbutton',...
'BackgroundColor',gris,...
'callback','close(gcbf)',...
'Position',[320 30 65 35],...
'String','Annuler',...
'Tag','An');
movegui(h0)
end
Does it help to define the units?
bg = uibuttongroup('Position',[44 95 215 50]);
r1 = uicontrol(bg,'Style','radiobutton',...
'Position',[8 3 200 20], ...
'Units', 'pixels', ... % <== here
'String','Export des amplitudes et phases',...
'Tag','A&P1',...
'Value',1);
yes it did thx a lot

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Programming finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2022a

Gefragt:

Ali
am 21 Nov. 2022

Kommentiert:

Ali
am 22 Nov. 2022

Community Treasure Hunt

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

Start Hunting!

Translated by