c++ - samsung - ¿Cómo formatear un QString?
no puedo formatear mi disco duro (3)
Puede usar QString.arg como este
QString my_formatted_string = QString("%1/%2-%3.txt").arg("~", "Tom", "Jane");
// You get "~/Tom-Jane.txt"
Este método es preferido sobre sprintf porque:
Cambiar la posición de la cadena sin tener que cambiar el orden de sustitución, por ejemplo
// To get "~/Jane-Tom.txt"
QString my_formatted_string = QString("%1/%3-%2.txt").arg("~", "Tom", "Jane");
O bien, cambiar el tipo de argumentos no requiere cambiar la cadena de formato, por ejemplo
// To get "~/Tom-1.txt"
QString my_formatted_string = QString("%1/%2-%3.txt").arg("~", "Tom", QString::number(1));
Como puede ver, el cambio es mínimo. Por supuesto, generalmente no necesita preocuparse por el tipo que se pasa a QString :: arg () ya que la mayoría de los tipos están sobrecargados correctamente.
Un inconveniente sin embargo: QString :: arg () no maneja std :: string. Tendrá que llamar a: QString :: fromStdString () en su std :: string para convertirlo en un QString antes de pasarlo a QString :: arg (). Intente separar las clases que usan QString de las clases que usan std :: string. O si puedes, cambia a QString por completo.
ACTUALIZACIÓN: los ejemplos se actualizan gracias a Frank Osterfeld.
ACTUALIZACIÓN: los ejemplos se actualizan gracias a alexisdm.
Me gustaría formatear una cadena para la etiqueta Qt, estoy programando en C ++ en Qt.
En ObjC escribiría algo como:
NSString *format=[NSString stringWithFormat: ... ];
¿Cómo hacer algo así en Qt?
Puede utilizar el método sprintf
; sin embargo, se prefiere el método arg
porque es compatible con Unicode.
QString str;
str.sprintf("%s %d", "string", 213);
Use QString::arg()
para el mismo efecto.