gui popupmenu_нужна_помощь

Обсуждение вопросов связанных с компиляцией, созданием GUI приложений.

Модератор: Admin

Jey
Пользователь
Сообщения: 2714
Зарегистрирован: Вт сен 12, 2006 2:21 pm

Re: gui popupmenu_нужна_помощь

Сообщение Jey » Пн июл 08, 2019 3:53 pm

Оба радиобатона могут быть выбраны одновременно?
Если радиобатон выбран, то отображается popup, который рядом с ним?
Помощь в Матлабе / Matlab, Qt за деньги.
Помощь в html, css, jquery, MVC за деньги.
Помощь в C# / C sharp / Си шарп за деньги.
Вконтакте: https://vk.com/id122995106
или Личное сообщение на форуме.
http://ПунктыПроката.рф

foxic3532
Пользователь
Сообщения: 27
Зарегистрирован: Ср июл 03, 2019 1:40 am

Re: gui popupmenu_нужна_помощь

Сообщение foxic3532 » Вт июл 09, 2019 11:11 pm

Jey писал(а):Jey , прошу прошения , только сейчас увидел Ваше сообщение , хотя каждый день сюда захожу . если выбирается один радиобатон , второй выбрать нельзя . каждый из попапменю строго привязан к своему радиобатону .1-ый радиобатон - 1-ый попапменю. 2-ый радиобатон - 2-ой попапменю . если выбирается (как на картинке в прошлом моем сообщении) 2-ой радиобатон , то справа высвечивается 2-ой попапменю , а 1-ый радиобатон и к нему привязанный 1-ый попапменю не показываются. (в идеале , размер выбранного радиобатона должен быть по высоте 2/3 высоты окна гуи , ширина =1/3 ; а для попапменю : высота =2/5 , ширина =1/3 от размера окна гуи , но это ладно , мелочи ) . Спасибо , что помогаете .

Jey
Пользователь
Сообщения: 2714
Зарегистрирован: Вт сен 12, 2006 2:21 pm

Re: gui popupmenu_нужна_помощь

Сообщение Jey » Ср июл 10, 2019 9:09 am

Код: Выделить всё

% --- Executes on button press in radiobutton1.
function radiobutton1_Callback(hObject, eventdata, handles)
% hObject handle to radiobutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of radiobutton1

set(handles.popupmenu1, 'Visible', 'off');
set(handles.popupmenu2, 'Visible', 'off');

if (get(hObject,'Value') == 1)

   set(handles.popupmenu1, 'Visible', 'on');
   set(handles.radiobutton2, 'Enable', 'off');
else
   set(handles.radiobutton2, 'Enable', 'on');
end

% --- Executes on button press in radiobutton2.
function radiobutton2_Callback(hObject, eventdata, handles)
% hObject handle to radiobutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of radiobutton2

set(handles.popupmenu1, 'Visible', 'off');
set(handles.popupmenu2, 'Visible', 'off');

if (get(hObject,'Value') == 1)

   set(handles.popupmenu2, 'Visible', 'on');
   set(handles.radiobutton1, 'Enable', 'off');
else
   set(handles.radiobutton1, 'Enable', 'on');
end
Помощь в Матлабе / Matlab, Qt за деньги.
Помощь в html, css, jquery, MVC за деньги.
Помощь в C# / C sharp / Си шарп за деньги.
Вконтакте: https://vk.com/id122995106
или Личное сообщение на форуме.
http://ПунктыПроката.рф

foxic3532
Пользователь
Сообщения: 27
Зарегистрирован: Ср июл 03, 2019 1:40 am

Re: gui popupmenu_нужна_помощь

Сообщение foxic3532 » Чт июл 11, 2019 5:36 pm

Jey писал(а):Jey , и снова здравствуйте . По поводу кода : когда выбирается второй радиобатон - вылезает список popupmenu2 - при выборе любого пункта (кроме первого) вылезает следующая ошибка :
Undefined function or variable 'popupmenu2_Callback'.

Error in gui_mainfcn (line 95)
feval(varargin{:});

Error in radiobutton1popupmenu1radiobutton2ppupmenu2 (line 42)
gui_mainfcn(gui_State, varargin{:});

Error in
matlab.graphics.internal.figfile.FigFile/read>@(hObject,eventdata)radiobutton1popupmenu1radiobutton2ppupmenu2('popupmenu2_Callback',hObject,eventdata,guidata(hObject))
Error while evaluating UIControl Callback

foxic3532
Пользователь
Сообщения: 27
Зарегистрирован: Ср июл 03, 2019 1:40 am

Re: gui popupmenu_нужна_помощь

Сообщение foxic3532 » Чт июл 11, 2019 5:38 pm

Jey писал(а): надо прописывать дальнейшие действия с попапменю-кой , или что ?

foxic3532
Пользователь
Сообщения: 27
Зарегистрирован: Ср июл 03, 2019 1:40 am

Re: gui popupmenu_нужна_помощь

Сообщение foxic3532 » Чт июл 11, 2019 6:03 pm

Jey писал(а):

Код: Выделить всё

решил вот так :
function popupmenu2_Callback(hObject, eventdata, handles)
try
    % Get value of popup
    selectedIndex = get(handles.popupmenu2, 'value');
    % Take action based upon selection
    if selectedIndex  == 1
        calc = 1;
    elseif selectedIndex == 2;
        calc = 1;
    elseif selectedIndex == 3;
        calc = 1;
    end
end

Jey
Пользователь
Сообщения: 2714
Зарегистрирован: Вт сен 12, 2006 2:21 pm

Re: gui popupmenu_нужна_помощь

Сообщение Jey » Пт июл 12, 2019 9:02 am

Если при изменении выбора в popupmenu ничего делать не нужно, то достаточно так:

Код: Выделить всё

% --- Executes on selection change in popupmenu1.
function popupmenu1_Callback(hObject, eventdata, handles)
% hObject handle to popupmenu1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: contents = cellstr(get(hObject,'String')) returns popupmenu1 contents as cell array
% contents{get(hObject,'Value')} returns selected item from popupmenu1

% --- Executes on selection change in popupmenu2.
function popupmenu2_Callback(hObject, eventdata, handles)
% hObject handle to popupmenu2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: contents = cellstr(get(hObject,'String')) returns popupmenu2 contents as cell array
% contents{get(hObject,'Value')} returns selected item from popupmenu2

Эти заготовки Матлаб генерирует автоматически, например, когда нажимаете на popupmenu правой кнопкой мыши, далее View Callbacks, далее Callback.
Помощь в Матлабе / Matlab, Qt за деньги.
Помощь в html, css, jquery, MVC за деньги.
Помощь в C# / C sharp / Си шарп за деньги.
Вконтакте: https://vk.com/id122995106
или Личное сообщение на форуме.
http://ПунктыПроката.рф

foxic3532
Пользователь
Сообщения: 27
Зарегистрирован: Ср июл 03, 2019 1:40 am

Re: gui popupmenu_нужна_помощь

Сообщение foxic3532 » Пн июл 15, 2019 10:05 pm

Jey писал(а): Jey , здравствуйте . Подскажите , вот при создании радиобаттона я делаю надпись в виде : txt = uicontrol('Style','text',...
'Position',[800 520 320 50],...
'String','... :'); . как при выключении радиобаттона сделать невидимой эту надпись ?

foxic3532
Пользователь
Сообщения: 27
Зарегистрирован: Ср июл 03, 2019 1:40 am

Re: gui popupmenu_нужна_помощь

Сообщение foxic3532 » Пн июл 15, 2019 10:26 pm

foxic3532 писал(а):
Jey писал(а): и еще : при активации радиобаттона у меня активируется edit textbox (в котором вводится число выбираемых текстовых файлов, число этих файлом - произвольное ), как сделать чтобы активировалось серия file1 - кнопка выбора файла1...
fileN - кнопка выбора файлаN

Jey
Пользователь
Сообщения: 2714
Зарегистрирован: Вт сен 12, 2006 2:21 pm

Re: gui popupmenu_нужна_помощь

Сообщение Jey » Вт июл 16, 2019 8:45 am

1. set(txt, 'Visible', 'off');
Только переменная txt должна быть глобальной:
global txt;

2. В цикле через uicontrol создайте нужное кол-во кнопок:
for ii = 1:N
uicontrol(...);
end
Помощь в Матлабе / Matlab, Qt за деньги.
Помощь в html, css, jquery, MVC за деньги.
Помощь в C# / C sharp / Си шарп за деньги.
Вконтакте: https://vk.com/id122995106
или Личное сообщение на форуме.
http://ПунктыПроката.рф

foxic3532
Пользователь
Сообщения: 27
Зарегистрирован: Ср июл 03, 2019 1:40 am

Re: gui popupmenu_нужна_помощь

Сообщение foxic3532 » Вт июл 16, 2019 12:18 pm

Jey писал(а): Jey , здравствуйте . Я так вчера и сделал , только без глобализации переменной txt . код работает , только мне бы хотелось иметь вариант :
file 1 кнопка выбрать файл
file 2 кнопка выбрать файл

....
file N кнопка выбрать файл;
пока не додумался до такого варианта

foxic3532
Пользователь
Сообщения: 27
Зарегистрирован: Ср июл 03, 2019 1:40 am

Re: gui popupmenu_нужна_помощь

Сообщение foxic3532 » Ср июл 17, 2019 4:38 pm

foxic3532 писал(а):
Jey писал(а): Jey , здравствуйте . Я решил вопрос , хотя несколько другим способом . У меня вот какой вопрос возник . Я сделал кнопку пушбаттон ( 'выберите файлы' ) и выбираю несколько текстовых файлов . потом эти текстовые файлы мне надо передать в отдельную расчетный файл-функцию , в котором над этими текстовыми файлами будут произведены некоторые действия . вот так я сделал :

Код: Выделить всё

 function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
[file folder]=uigetfile('*.txt','choose experimental data','MultiSelect','on');
  FileNames = cellstr(file);
    for i=1:length(file) 
    Path{i} = fullfile(folder, file{i}); 
    fileID{i} = fopen(Path{i});
    end

folder;
file;
pathfile=string(strcat(folder,file));
global fileID;
 
function radiobutton3_Callback(hObject, eventdata, handles)
set(handles.radiobutton3, 'Visible', 'off');
 set(handles.radiobutton3, 'Enable', 'off');
 if ~isempty(get(hObject,'String'))
    set(handles.radiobutton3, 'Visible', 'on');
 set(handles.radiobutton3, 'Enable', 'on');
 disp('Hello ?')
 if ~isempty(get(handles.pushbutton1, 'value'))
     global fileID
     fileID
     disp('Hello ?')
c = loadfilegui(fileID);
 end
  end
  файл c = loadfilegui(fileID) такой :
 
  function  loadfilegui(fileID)
disp('Сюда приходим ?')
% [xEXP, spcEXP] = textread(fileID,'%f %f',  -1);
%%% fileID - это полный путь к файлам : 'C:\ ...\название файла.txt\
end


кнопка радиобаттон3 = кнопка start calculation , которая и отправляет все загруженные файлы в  loadfilegui