Normas del foro
Bienvenido(a),
Visitante
. Favor de
ingresar
o
registrarse
.
¿Perdiste tu
email de activación?
- Noviembre 23, 2008, 09:23:09
Visita:
Articulos
-
Juegos Gratis
-
Da Foros
Comunidad Underground Hispana
|
Programacion
|
Programación
|
Carbide C/C#/C++
| Tema:
Problema simple con variables en c++ y qt
0 Usuarios y 1 Visitante están viendo este tema.
« anterior
próximo »
Páginas:
[
1
]
Autor
Tema: Problema simple con variables en c++ y qt (Leído 327 veces)
ayahora
Recien Llegado
Desconectado
Mensajes: 5
Problema simple con variables en c++ y qt
«
en:
Diciembre 23, 2007, 05:19:33 »
Hola,
He empezado a hacer algunas pruebas con C++ y Qt con unos manuales que me he bajado. El caso es que estoy intentando hacer una aplicación simple para probar.
El formulario consta de un label (llamado pantalla) y un botón que está enlazado a una función.
El código que tengo puesto en el widget es el siguiente:
Código: (cpp)
#include <qlabel.h>
#include "paraprobarwidget.h"
paraprobarWidget::paraprobarWidget(QWidget* parent, const char* name, WFlags fl)
: paraprobarWidgetBase(parent,name,fl)
{}
paraprobarWidget::~paraprobarWidget()
{}
/*$SPECIALIZATION$*/
void paraprobarWidget::button_clicked()
{
char palabra[4];
palabra="hola";
pantalla->setText[b]("%c",palabra)[/b];
}
El caso es que si donde pone ""%c",palabra" lo susituyo por una palabra cualquiera todo va bien, pero así me da varios errores. ¿Por qué? No se pueden poner variables en labels?
Salu2
En línea
Ni0
Gran Colaborador
Desconectado
Mensajes: 1362
Ni0-inside the source code
Re: Problema simple con variables en c++ y qt
«
Respuesta #1 en:
Diciembre 23, 2007, 02:01:58 »
es porque palabra es un array, una cadena, un vector o como quieras llamarlo, y no un caracter, para mostrar una cadena se usa "%s"
por lo que quedaria:
""%s", palabra"
con %c estas mostrando un caracter, y como dije, palabra no es un caracter, nisiquiera te mostraria el primero, cuando leas sobre arrays o vectores te vas a dar cuenta porque.
salu2!
En línea
Inside The Source Code
Necesitas ser usuario para ver los enlaces
Crear Usuario
Hacer Sesion
Linux Registred User #460377
ayahora
Recien Llegado
Desconectado
Mensajes: 5
Re: Problema simple con variables en c++ y qt
«
Respuesta #2 en:
Diciembre 24, 2007, 07:40:20 »
Gracias por tu ayuda. Ya cambié "%c" por "%s" pero sigue dando error al compilar. Concretamente:
Código:
compilando paraprobarwidget.cpp (g++)
/home/miguel/PROYECTOS/paraprobar/src/paraprobarwidget.cpp: In member function ‘virtual void paraprobarWidget::button_clicked()’:
/home/miguel/PROYECTOS/paraprobar/src/paraprobarwidget.cpp:38: error: incompatible types in assignment of ‘const char [5]’ to ‘char [4]’
/home/miguel/PROYECTOS/paraprobar/src/paraprobarwidget.cpp:39: error: no matching function for call to ‘QLabel::setText(const char [3], char [4])’
/usr/share/qt3/include/qlabel.h:103: note: candidates are: virtual void QLabel::setText(const QString&)
make: *** [paraprobarwidget.o] Error 1
make: Debido a los errores, el objetivo `paraprobar' no se reconstruyó.
***Terminado con estado 2***
salu2
En línea
dreams_eater
Habitual
Desconectado
Mensajes: 184
Re: Problema simple con variables en c++ y qt
«
Respuesta #3 en:
Diciembre 24, 2007, 09:45:18 »
No programo en QT
me gustaria ver el codigo completo
eso no es el codigo completo
porque creas las funciones en el cpp, deverian estar en el .h?
Estudia las clases primero antes de dedicarte al QT, me huele a que no usas bien los operandos "::"
En línea
"La juventud envejece, la inmadurez se supera, la ignorancia puede educarse, y la borrachera desperjarse, pero la estupidez dura para siempre" - Aristófanes
FreakMind
Habitual
Desconectado
Mensajes: 190
Re: Problema simple con variables en c++ y qt
«
Respuesta #4 en:
Diciembre 24, 2007, 10:00:36 »
Buenas
Cita de: dreams_eater en Diciembre 24, 2007, 09:45:18
porque creas las funciones en el cpp, deverian estar en el .h?
En un .h van las declaraciones de las funciones y las estructuras que usas. Las implementaciones van en un .c o .cpp
Fijense en esto
char palabra[4];
palabra="hola";
Un poco de background: como saben un vector es un puntero constante a la primera posicion. Es parecido a hacer const char palabra (como dice el compilador)
1) Al hacer la asignacion
palabra = "hola"
, ayahora esta tratando de cambiar esa posicion de memoria. Por eso salta el error. Lo que tiene que utilizar es strcpy || strncpy || memcpy
2) palabra posee 4 posiciones y las cadenas como "hola" son terminadas en '\0', por lo que hola necesita 5 posiciones, no 4
Salu2, FreakMind
«
Última modificación: Diciembre 24, 2007, 10:05:23 por ҒrεακΜιи∂
»
En línea
Connoisseurs of C semantics find C++ inferior to ++C
dreams_eater
Habitual
Desconectado
Mensajes: 184
Re: Problema simple con variables en c++ y qt
«
Respuesta #5 en:
Diciembre 24, 2007, 10:45:01 »
eso me pasa por no mirarlo todo, esa horrible parte no la lei, jajaja
Lei que QT acepta html, esto ce refiere a los const char* que recibe como parametros. Estas programando en C++, no otro lenguaje.
Lo que ҒrεακΜιи∂ dice en otras palabras es que :
el nombre de un arreglo es equibalente a la dirección del primer elemento.
por lo tanto en strcpy sería algo así:
strcpy(palabra,"hola");
te dice que son cinco porque todo string tenmina con un caracter nulo (que es un cero).
hola= 'h' 'o' 'l' 'a' '\0'
En línea
"La juventud envejece, la inmadurez se supera, la ignorancia puede educarse, y la borrachera desperjarse, pero la estupidez dura para siempre" - Aristófanes
Ni0
Gran Colaborador
Desconectado
Mensajes: 1362
Ni0-inside the source code
Re: Problema simple con variables en c++ y qt
«
Respuesta #6 en:
Diciembre 24, 2007, 02:07:29 »
bueh, aparte de todo eso, cuando uses strcpy u otra (que esta en strings.h) tambien tenes que usar %s no?
salu2!
En línea
Inside The Source Code
Necesitas ser usuario para ver los enlaces
Crear Usuario
Hacer Sesion
Linux Registred User #460377
FreakMind
Habitual
Desconectado
Mensajes: 190
Re: Problema simple con variables en c++ y qt
«
Respuesta #7 en:
Diciembre 24, 2007, 03:36:01 »
Cita de: Ni0 en Diciembre 24, 2007, 02:07:29
bueh, aparte de todo eso, cuando uses strcpy u otra (que esta en strings.h) tambien tenes que usar %s no?
salu2!
A que te referis?
En línea
Connoisseurs of C semantics find C++ inferior to ++C
Ni0
Gran Colaborador
Desconectado
Mensajes: 1362
Ni0-inside the source code
Re: Problema simple con variables en c++ y qt
«
Respuesta #8 en:
Diciembre 24, 2007, 04:22:39 »
ayahora dice en el primer post:
Citar
El caso es que si donde pone ""%c",palabra" lo susituyo por una palabra cualquiera todo va bien, pero así me da varios errores. ¿Por qué? No se pueden poner variables en labels?
y como palabra es una cadena, no deberia poner %s en vez de %c???
salu2!
En línea
Inside The Source Code
Necesitas ser usuario para ver los enlaces
Crear Usuario
Hacer Sesion
Linux Registred User #460377
FreakMind
Habitual
Desconectado
Mensajes: 190
Re: Problema simple con variables en c++ y qt
«
Respuesta #9 en:
Diciembre 24, 2007, 05:10:18 »
Cita de: Ni0 en Diciembre 24, 2007, 04:22:39
ayahora dice en el primer post:
Citar
El caso es que si donde pone ""%c",palabra" lo susituyo por una palabra cualquiera todo va bien, pero así me da varios errores. ¿Por qué? No se pueden poner variables en labels?
y como palabra es una cadena, no deberia poner %s en vez de %c???
salu2!
Asi es... Pero antes de usar el %s tiene que tener el '\0' sino tirara errores tambien.
Lo que le dice el %s a printf es que imprima todos los caracteres hasta encontrar un '\0'. Imaginate que si no lo encuentra va a seguir imprimiendo hasta que por casualidad encuentre uno en toda la memoria (eso si primero no explota)
Salu2, FreakMind
En línea
Connoisseurs of C semantics find C++ inferior to ++C
ayahora
Recien Llegado
Desconectado
Mensajes: 5
Re: Problema simple con variables en c++ y qt
«
Respuesta #10 en:
Diciembre 25, 2007, 10:20:47 »
Al final lo dejé así, tal y como he entendido más o menos con vuestros posts:
Código:
void paraprobarWidget::button_clicked()
{
char palabra[5];
strcpy(palabra,"hola");
pantalla->setText("%s",palabra);
}
Pero sigue dando errores..... ¿Por qué?
Código:
/home/miguel/PROYECTOS/paraprobar/src/paraprobarwidget.cpp:40: error: no matching function for call to ‘QLabel::setText(const char [3], char [5])’
/usr/share/qt3/include/qlabel.h:103: note: candidates are: virtual void QLabel::setText(const QString&)
Gracias por su ayuda.
salu2
En línea
FreakMind
Habitual
Desconectado
Mensajes: 190
Re: Problema simple con variables en c++ y qt
«
Respuesta #11 en:
Diciembre 25, 2007, 03:23:38 »
Cita de: ayahora en Diciembre 25, 2007, 10:20:47
for call to ‘QLabel::setText(const char [3], char [5])’
/usr/share/qt3/include/qlabel.h:103: note: candidates are: virtual void QLabel::setText(const QString&)
Realmente nunca use qt. Pero por el error del compilador pareceria como que estas usando mal el metodo setText.
Vos lo usas con el siguiente prototipo
setText(const char [3], char [5])
y en realidad tendrias que usarlo con este
setText(const QString&)
Salu2, FreakMind
En línea
Connoisseurs of C semantics find C++ inferior to ++C
dreams_eater
Habitual
Desconectado
Mensajes: 184
Re: Problema simple con variables en c++ y qt
«
Respuesta #12 en:
Diciembre 25, 2007, 04:39:47 »
setText(const QString&) ? mira que & es un operador he. que diablos hace alli atras?
En línea
"La juventud envejece, la inmadurez se supera, la ignorancia puede educarse, y la borrachera desperjarse, pero la estupidez dura para siempre" - Aristófanes
FreakMind
Habitual
Desconectado
Mensajes: 190
Re: Problema simple con variables en c++ y qt
«
Respuesta #13 en:
Diciembre 25, 2007, 05:52:31 »
Cita de: dreams_eater en Diciembre 25, 2007, 04:39:47
setText(const QString&) ? mira que & es un operador he. que diablos hace alli atras?
En C++, cuando haces esto
Clase& var
, siginifca que var referencia a la clase. Es parecido a un puntero, solamente que no necesitas desreferenciarlo para obtener el contenido.
En línea
Connoisseurs of C semantics find C++ inferior to ++C
dreams_eater
Habitual
Desconectado
Mensajes: 184
Re: Problema simple con variables en c++ y qt
«
Respuesta #14 en:
Diciembre 25, 2007, 06:56:00 »
mmm...me dare unos dias.
no se sorprendan si no posteo.
En línea
"La juventud envejece, la inmadurez se supera, la ignorancia puede educarse, y la borrachera desperjarse, pero la estupidez dura para siempre" - Aristófanes
ayahora
Recien Llegado
Desconectado
Mensajes: 5
Re: Problema simple con variables en c++ y qt
«
Respuesta #15 en:
Enero 05, 2008, 06:35:34 »
El error era que lo declaraba como una string en vez de como una Qstring que es lo que acepta un Qlabel.
Total, que quedaría asi:
Código:
void paraprobarWidget::button_clicked()
{
QString palabra = "Hola";
pantalla->setText(palabra);
}
Salu2
En línea
Páginas:
[
1
]
Comunidad Underground Hispana
|
Programacion
|
Programación
|
Carbide C/C#/C++
| Tema:
Problema simple con variables en c++ y qt
« anterior
próximo »
Ir a:
Por favor selecciona un destino:
-----------------------------
Foros De Consulta General
-----------------------------
=> Novedades
=> Dudas, Comentarios Y Sugerencias
=> Top 100
=> Off-Topic
=> Revista E-Zine
===> Noticias
-----------------------------
Phreaking, Hacking y Seguridad
-----------------------------
=> HacK GeneraL
===> Ingenieria Inversa
===> Encriptacion, Cryptografia
===> TV HACK
===> Cursos y Ezines
=====> Trucos Internet
=====> Textos Hacking
===> Defacing
=> Seguridad
=> Phreaking
===> Moviles
=> Bug y Exploits
===> Directorio de Exploits
=> Wargames, Retos Hack
-----------------------------
Hack Novato
-----------------------------
=> Hack para newbies
=> Todo Messenger
=> Troyanos y virus
-----------------------------
Sistemas Operativos
-----------------------------
=> Windows y otros sistemas operativos no libres
===> Problemas Tecnicos Windows
=> Sistemas operativos libres.
===> GNU/Linux
===> Manuales y Tutoriales
===> Descargas
-----------------------------
Programacion
-----------------------------
=> Programación
===> Programación Basica
===> Otros Lenguajes
===> Visual Basic y Net
===> ASM
===> Programacion Shell
===> Perl
===> Carbide C/C#/C++
===> Batch
===> SQL
=> Programacion para webmasters
===> Consultas Generales
===> Php
===> Html, XHTML, CSS
===> Java - Java Script
===> CMS O Scripts Pre-Fabricados
===> Posicionamiento en buscadores
-----------------------------
Artes Graficas
-----------------------------
=> Diseño Grafico
===> Battle Arts
===> Flash
===> Tutoriales
===> Galerías
===> Software
-----------------------------
Area Tecnica
-----------------------------
=> Networking & Wireless
=> Overclocking, Refrigeracion y demas
=> Hardware
===> Biblioteca Tecnica
=> Electronica Y Robotica
-----------------------------
Programas
-----------------------------
=> Software
===> Configuraciones de software
===> Pedidos de software
=> Cracks & Serialz
=> P2p, Bittorrent, Elinks
-----------------------------
Multimedia Y Divx
-----------------------------
=> Juegos PC Y Consolas
===> Dudas ayudas y comentarios de juegos
===> Pedidos de juegos
===> Juegos de Consola
=> Mp3
=> Multimedia
=> Peliculas Divx
-----------------------------
Entretenimiento Y sitios de interes
-----------------------------
=> Juegos, Humor y Adultos. (Diversión)
===> Adultos
=> Paginas Webs Recomendadas
=> Videos
Powered by SMF 1.1.7
|
SMF © 2006-2007, Simple Machines LLC
Loading...