es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

wxWidgets/C++/Code::Blocks: Error al importar la fuente de la biblioteca del sistema.

He estado creando una aplicación simple en C++/wxWidgets que solo tiene un catálogo de cómics de Garfield de Internet, sin los molestos anuncios y ofertas. (No me pregunten cómo obtuve acceso a los archivos PNG de cada cómic en primer lugar, porque mi nombre ya lo explica).

De todos modos, estoy tratando de hacer un texto estático con una fuente específica (en mi caso, sería Tahoma tamaño 8. Voy a hacerlo en negrita, pero por simplicidad aún no lo he hecho). Utilizo la siguiente línea de código para importarla desde el catálogo interno de fuentes de Windows:

c++
wxFont *CC_FONT_Tahoma_Bold(8, wxFONTFAMILY_SWISS, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxT("Tahoma"), wxFONTENCODING_DEFAULT);

pero cada vez que lo intento, falla y muestra el siguiente mensaje de error (estoy usando mingw-w64 8.1.0 si eso ayuda):

error: no se puede convertir ‘wxFontEncoding’ a ‘wxFont*’ en la inicialización

No tengo idea de lo que esto significa y he intentado cambiar el codificado de la fuente a todos los valores posibles, pero aún no hago progreso. Además, estoy creando la fuente en la función OnInit de la aplicación. También he intentado ponerla en una función diferente. Por favor, ayúdenme.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que estás intentando asignar un valor de codificación de fuente a un puntero wxFont, lo cual está causando el mensaje de error. Para crear una fuente con una familia de fuente específica, estilo, peso y tamaño, puedes usar en su lugar la clase wxFONTDESCRIPTOR. Aquí tienes un ejemplo de código:

    “`c++
    wxFontDescriptor desc;
    desc.SetFamily(wxFONTFAMILY_SWISS);
    desc.SetStyle(wxFONTSTYLE_NORMAL);
    desc.SetWeight(wxFONTWEIGHT_NORMAL);
    desc.SetSize(8);
    desc.SetFaceName(“Tahoma”);
    wxFont font(desc);

    // Para crear un texto estático con esta fuente:
    wxStaticText *text = new wxStaticText(parent, wxID_ANY, “Hola Mundo”, wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT | wxST_NO_AUTORESIZE);
    text->SetFont(font);
    “`

    Esto debería crear una fuente con los criterios especificados, y puedes usarla para establecer la fuente de tu widget de texto estático como se muestra en el ejemplo. ¡Espero que esto te ayude!

Comments are closed.