¿Alguien sabe de un método para mostrar una ventana emergente de selección de fecha de calendario en MATLAB gui? Sé que la financiera de la caja de herramientas tiene un uicalendar función, pero por desgracia no tengo esa caja de herramientas.

Tengo un presentimiento de que me voy a tener que usar algo de Java o algún otro idioma de esta, que yo no sé nada acerca de.

Estoy buscando algo similar a esto:
MATLAB de selección de fecha de calendario emergente para gui

(fuente: welie.com)

que devolverá una cadena de fecha después de que el usuario selecciona la fecha.

  • Gracias por todas las respuestas! Voy a decidir que aceptar, cuando consiga pruebas de los diversos enfoques.
InformationsquelleAutor Doresoom | 2010-04-16

3 Comentarios

  1. 4

    No tengo mucho tiempo para una respuesta más completa, por desgracia, pero me gustaría probar uitable para crear una tabla y definir el CellSelectionCallback para obtener la fecha.

    Aquí un poco para empezar:

    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'});
  2. 7

    Aquí son dos los enfoques que le dan un aspecto profesional componente de calendario en Matlab sin mucho trabajo de programación:

    1. Utilizar un Java componente de calendario (por ejemplo, uno de estos o estos). Una vez que descargue la correspondiente clase de Java o Jar-archivo, añadir a su estática classpath de Java (el uso de la edit('classpath.txt') de comandos de Matlab Símbolo del sistema). Por último, el uso de la incorporada en el javacomponent función para colocar el componente en su Matlab la figura de la ventana.

    2. Si usted está utilizando un sistema operativo Windows, puede incrustar cualquier Active-X control de calendario que está disponible. Utilizar el built-in actxcontrolselect función para elegir a su favorito control de calendario (por ejemplo, Microsoft Office «Control de Calendario 11.0» – MSCAL.Calendario.7 – que se instala automáticamente con Office 2003; o «Microsoft Selector de Fecha y Hora Control 6.0» – MSComCtl2.DTPicker.2, o …). A continuación, utilice el actxcontrol función para colocar el componente en su Matlab la figura de la ventana.

    3. Matlab tiene algunos bastante útiles incorporado en el calendario (fecha de selección) controles – he publicado un artículo acerca de ellos hoy

    • Altman : Javacomponent parece ser indocumentados. Ser completamente familiarizado con el uso de java en MATLAB, podría explicar los parámetros de entrada?
  3. 4

    Me gustaría empezar con el calendario() función que genera una matriz que contiene el calendario de cualquier mes. Supongo que podría combinar esto con un usuario puede hacer clic interfaz para recuperar una fecha específica?

    El siguiente código es realmente feo, pero podría ayudarle a empezar…

     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
    • Puede insertar dates(all(dates==0,2),:)=[]; después de calendario() llamada a eliminar la fila con todos los ceros.
    • Y [NB_ROWS,NB_COLS] = size(dates);
    • Buenos puntos. Estoy un poco ocupado, pero siéntase libre de editar en consecuencia 🙂
    • Su solución es mucho más bonito que el uso recomendado, pero creo recomendado será mucho menos complicado de tratar.

Dejar respuesta

Please enter your comment!
Please enter your name here