Выбор даты MATLAB открывает календарь для gui

Кто-либо знает о методе для отображения раскрывающегося календаря выбора даты в MATLAB gui? Я знаю, что финансовая панель инструментов имеет a uicalendar функция, но к сожалению у меня нет той панели инструментов.

У меня есть догадка, я оказываюсь перед необходимостью использовать некоторый Java или некоторый другой язык для этого, о котором я ничего не знаю.

Я ищу что-то подобное этому: alt text
(источник: welie.com)

который возвратил бы строку даты после того, как пользователь выбирает дату.

6
задан Glorfindel 23 July 2019 в 11:05
поделиться

3 ответа

К сожалению, у меня нет времени на более полный ответ, но я бы попробовал uitable для создания таблицы и определение CellSelectionCallback для получения даты.

Вот немного для начала:

dates = calendar;
dates(~any(dates,2),:) = [];
fh = figure;
uh = uitable('parent',fh,'data',dates,'ColumnWidth',repmat({20},1,7),...
             'ColumnName',{'S','M','T','W','T','F','S'});
4
ответ дан 8 December 2019 в 16:00
поделиться

​​Вот два подхода, которые дадут вам профессиональный компонент календаря в Matlab без лишних усилий по программированию:

  1. Используйте компонент календаря Java (например, один из этих или эти ). После загрузки соответствующего класса Java или Jar-файла добавьте его в свой статический путь к классам Java (используйте команду edit ('classpath.txt') из командной строки Matlab). Наконец, используйте встроенную функцию javacomponent , чтобы поместить компонент в окно рисунка Matlab.

  2. Если вы используете ОС Windows, вы можете встроить любой доступный элемент календаря Active-X . Используйте встроенную функцию actxcontrolselect , чтобы выбрать свой любимый элемент управления календарем (например, Microsoft Office «Calendar Control 11.0» - MSCAL.Calendar.7 - который автоматически устанавливается вместе с Office 2003; или «Microsoft Date and Time Picker Control 6.0 "- MSComCtl2.DTPicker.2 или ...). Затем используйте функцию actxcontrol , чтобы поместить компонент в окно рисунка Matlab.

  3. В Matlab есть несколько довольно полезных встроенных элементов управления календарем (выбор даты) - я опубликовал статью о них сегодня

7
ответ дан 8 December 2019 в 16:00
поделиться

Я бы начал с функции calendar () , которая выводит матрицу, содержащую календарь на любой месяц. Я полагаю, вы могли бы объединить это с пользовательским интерфейсом, чтобы получить конкретную дату?

Следующий код действительно уродлив, но может помочь вам начать ...

 WINDOW_WIDTH = 300;
 WINDOW_HEIGHT = 200;
f= figure('Position',[300 300 WINDOW_WIDTH WINDOW_HEIGHT]);

 NB_ROWS = 6;
 NB_COLS = 7;
 width = round(WINDOW_WIDTH/NB_COLS);
 height = round(WINDOW_HEIGHT/NB_ROWS);
 buttons = nan(NB_ROWS,NB_COLS);
 dates = calendar();

 for row = 1:NB_ROWS
    for col = 1:NB_COLS
       if dates(row,col) == 0
          mydate = '';
       else
          mydate = sprintf('%i', dates(row,col));
       end
       buttons(row,col) = uicontrol('Style', 'PushButton', ...
          'String', mydate, ...
          'Position', [(col-1)*width (NB_ROWS - row)*height width height]);
    end
 end
4
ответ дан 8 December 2019 в 16:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: