2012-07-17 23 views
5

¿Hay alguna manera de redondear las esquinas de un widget QLineEdit? Si no hay un widget similar, ¿podría hacer esto?QLineEdit Esquinas redondeadas?

Visual Significado:

enter image description here

Resuelto: (Véase más abajo para obtener información adicional)

 QLineEdit *lineEdit = new QLineEdit; 

     lineEdit -> setStyleSheet("QLineEdit { border: 2px solid gray;" 
              "border-radius: 5px;}"); 

Respuesta

5

Puede usar StyleSheets para establecer los estilos de los componentes Qt del mismo modo que los usaría para crear un sitio web. Puede establecer una hoja de estilo de dos maneras: en el código de su aplicación o en QtDesiner.

Para hacerlo en QtDesiner (que es lo más conveniente), haga clic en el componente que se ha colocado en el formulario y pulse "Editar hoja de estilos" (o tal vez "cambio de estilo", lo siento, mi Qt ¿no es inglés, así que no estoy seguro del nombre exacto de la opción). Se abrirá una ventana que le permitirá editar la hoja de estilos del elemento.

Es muy conveniente porque tiene algunas opciones útiles como agregar recursos o colores o fuentes allí mismo, y solo tiene que presionar un par de botones para configurar la opción que necesita a través de la GUI sin necesidad de escribir o incluso para saber la sintaxis CSS

A partir del código, puede hacerlo así (ejemplo):

SomeComponent->setStyleSheet("QLineEdit { border-radius: 5px; }"); 

Here es la documentación sobre las hojas de estilo.

+1

@BrandonClark, sí, lo cambié, gracias por señalarlo – SingerOfTheFall

+0

Hola, como mencionó la hoja de estilo como en el sitio web, ¿funcionan todos los estilos disponibles en los sitios web? Como decir ': active', 'transition',' margin', etc. – SexyBeast

2

Use hojas de estilo. De http://doc.qt.io/archives/qt-4.7/stylesheet-examples.html:

QLineEdit { 
border: 2px solid gray; 
border-radius: 10px; 
} 

Además, siempre se puede anular paintEvent si quiere ensuciarse las manos.

+0

La pintura suena divertida. Pros? ¿Contras? –

+1

@BrandonClark, los profesionales dicen que puedes hacer que un componente se vea como _anytihng_ que puedas imaginar. Contras son que necesitará manejar el dibujo usted mismo. – SingerOfTheFall

+1

Aquí hay un buen tutorial sobre cómo anular paintEvent: http://zetcode.com/gui/qt4/painting/. Pero iría con las hojas de estilo si lo único que necesita son las esquinas redondeadas – Rolle