tutorial pagina oficial español qt qt4 pyqt pyqt4

pagina - ¿Widget Latitud/Longitud Qt4?



pyqt qt designer (2)

Hay algunas variantes:

QLineEdit con Validator: no fue lo suficientemente bueno para nosotros, no pudimos lograr una edición utilizable y una vista adecuada (con los símbolos '','' ''y grados en su lugar y la capacidad de prohibir valores incorrectos y todavía permitir estados semiactivos, y el objetivo el comportamiento no es marcar errores y obligar al usuario a corregirlos, sino permitir que el usuario ingrese solo valores válidos).

Tres ediciones de centrifugado en una línea con los símbolos apropiados entre ellos agrupados como un único widget y algún código para mover la entrada de teclado de uno al siguiente cuando sea necesario, etc. Se ve lo suficientemente bueno en algunos casos, y puede encontrar la variante de realización en el famoso Proyecto de mármol

Aún así, mi jefe dijo que este enfoque es casi tan feo como el primero, así que aquí hay otro enfoque: la subclase QAbstractSpinBox, como lo hizo Trolltech en su QDateTimeEditor. De hecho, el comportamiento de dicho widget es similar a uno, implementado en QDateTimeEditor. Yo, yo mismo no lo hice todavía, debido a las prioridades de tareas, pero tendrá que hacer.

¿Cuál es el mejor punto de partida para un widget Qt4 para ingresar Latitud / Longitud en formato DD: MM: SS (grados, minutos, segundos)? Personaliza un QLineEdit? Una serie de cajas giratorias?


Yo usaría un QValidator , adjuntándolo a un QLineEdit usando QLineEdit::setValidator() .

Necesitará una subclase para poder implementar la función validate() y posiblemente la función fixup() para su caso particular, ya que los dos validadores incluidos con Qt solo cubren números enteros y dobles.

Es un poco más amigable, en mi opinión, proporcionar un cuadro de entrada único para esto en lugar de tres cuadros de giro separados (que pueden parecer desordenados y no es tan bueno escribir).

[Editar: Otra alternativa es establecer una " máscara de entrada de validación " en su QLineEdit utilizando QLineEdit::setInputMask() . Es posible que desee una edición en línea con símbolos que ya están en su lugar y marcadores de posición para otros personajes, por ejemplo, y este enfoque le dará algo similar a eso. La aplicación QtDemo tiene un ejemplo de esto que puedes verificar seleccionando Widgets-> Line Edits (Widgets está en la segunda página).]