Desarrollo de aplicaciones Qt: el uso de QLabel

Tabla de contenido

1. Constructor

2. Propiedades y métodos

3. Ejemplo 1 contenido de pantalla y estilo de configuración

4. Ejemplo 2 Usar html para procesar hipervínculos

5. Imagen de visualización del ejemplo 3

6. El ejemplo 4 muestra GIF

7. Ejemplo 5 Mecanismo de socios


        QLabel hereda de QFrame.Como el control más básico y comúnmente usado de Qt Widget, se puede usar para hacer muchas cosas en el desarrollo real.

        QLabel no proporciona funciones de interacción con el usuario. La apariencia visual de la etiqueta se puede configurar de varias maneras y se puede usar como etiqueta para otras interfaces. QLabel se puede usar para mostrar lo siguiente:

  • texto sin formato: datos de texto sin formato
  • Texto enriquecido: También conocido como texto con formato, tiene información como estilo y diseño, como color, estilo (negrita, cursiva, etc.), tamaño de fuente, características (como hipervínculos), etc.
  • mostrar información de la imagen
  • mostrar archivo gif
  • Muestra directamente un número de tipo double o int
  • no se muestra nada

1. Constructor

        QLabel admite dos métodos de construcción, la diferencia es si se agrega contenido inicial por defecto

QLabel(const QString &text, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
QLabel(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())

2. Propiedades y métodos

El atributo de texto representa el contenido de la etiqueta actual

QString text() const                //当前内容
void setText(const QString &)       //设置内容

El atributo de alineación representa la alineación horizontal y vertical del texto, y la alineación en ambas direcciones se puede especificar al mismo tiempo. La alineación predeterminada es horizontal izquierda y centro vertical.

Qt::Alignment alignment() const;        // 获取对齐方式 
void setAlignment(Qt::Alignment align); // 设置对齐方式 
水平标志
Qt::AlignLeft:         //水平靠左。
Qt::AlignRight:        //水平靠右。
Qt::AlignHCenter:      //水平居中。
Qt::AlignJustify:      //水平调整间距两端对齐。
垂直标志
Qt::AlignTop:          //垂直靠上。
Qt::AlignBottom:       //垂直靠下。
Qt::AlignVCenter:      //垂直居中。
Qt::AlignBaseline:     //垂直与基线对齐。
组合标志
Qt::AlignCenter:       两个维度的中心,等价于 Qt::AlignHCenter | Qt::AlignVCenter。

El atributo sangría representa el valor de sangría del texto.

int indent() const;             // 获取文本缩进值 
void setIndex(int indent);      //设置文本缩进值 

El atributo de margen representa el margen del contenido mostrado.

int margin() const;             // 获取边距 
void setMargin(int margin);     // 设置边距 

El atributo wordWrap representa si el texto mostrado permite saltos de línea

bool wordWrap() const;         // 判断是否允许换行 
void setWordWrap(bool on);     // 设置是否允许换行 

scaledContents Esta propiedad se usa para determinar si la etiqueta escala su contenido para llenar todo el espacio disponible.

bool hasScaledContenes() const;      // 判断是否允许图像缩放 
void setScaledContents(bool on);     // 设置是否允许图像缩放 
bool hasScaledContenes() const;      // 判断是否允许图像缩放
void setScaledContents(bool on);     // 设置是否允许图像缩放

Imagen de visualización QPixmap

const QPixmap *pixmap() const;         // 获取显示的图像 
void setPixmap(const QPixmap &pixmap); // 设置显示的图像

QMovie muestra gif

QMovie *movie() const;       //获取当前的gif信息
void setMovie(QMovie *movie);//显示一个通过QMovie加载的gif文件

También hay algunos métodos de uso común heredados de la clase principal, que puede consultar a través de la documentación, y no explicaré demasiado aquí.

QFont font():     //当前是显示的字体QFont
int width():      //宽度
int height():     //高度
const int x():    //坐标
const int y():    //坐标

3. Ejemplo 1 contenido de pantalla y estilo de configuración

 QLabel *label = new QLabel(this);
 label->setFrameStyle(QFrame::Panel | QFrame::Sunken);
 label->setStyleSheet("color: red");
 label->setText("first line\nsecond line");
 label->setAlignment(Qt::AlignBottom | Qt::AlignRight);

        El contenido de la etiqueta se cambia agregando ''\n'', la dirección horizontal del archivo se establece mediante Alineación y el estilo de texto se establece mediante StyleSheet. Más adelante , presentaremos el uso de StyleSheet. Dado que QLabel hereda de QFrame, el estilo de control se puede dibujar mediante setFrameStyle.

  • QFrame::NoFrame no dibuja nada
  • QFrame::Box dibuja un borde a su alrededor
  • QFrame::Panel dibuja un panel para subir o bajar el contenido
  • QFrame::StyledPane dibuja un panel rectangular cuya apariencia depende del estilo de GUI actual. Puede ser elevado o empotrado.
  • QFrame::HLine dibuja una línea horizontal que no contiene nada (se usa como separador)
  • QFrame::VLine dibuja una línea vertical que no contiene nada (se puede usar como separador)
  • QFrame::WinPanel Dibuja un panel rectangular que se puede elevar o hundir como los paneles de Windows 2000. Especificar esta forma establece el Ancho de línea en 2 px. WinPanel proporciona compatibilidad. Para garantizar la independencia del estilo de la GUI, se recomienda utilizar StyledPanel.
  • QFrame::Plain El marco y el contenido son consistentes con el entorno circundante; use la paleta QPalette::WindowText color para dibujar (sin efectos 3D)
  • QFrame::Raised El marco y el contenido se elevan, y se dibuja una línea 3D elevada usando los colores claros y oscuros del grupo de colores actual
  • QFrame::Sunken El marco y el contenido se encuentran en un estado de hundimiento, y se dibuja una línea de hundimiento 3D utilizando los colores claros y oscuros del grupo de colores actual

 

4. Ejemplo 2 Usar html para procesar hipervínculos

ui->label->setOpenExternalLinks(true);
ui->label->setText("<a style='color: green; text-decoration: none' href = https://blog.csdn.net/u014491932/article/details/131740931?spm=1001.2014.3001.5501>CSDN");
ui->label->setAlignment(Qt::AlignCenter);


ui->label_2->setText("<a style='color: green; text-decoration: none' href = https://blog.csdn.net/u014491932/article/details/131740931?spm=1001.2014.3001.5501>CSDN");
ui->label_2->setAlignment(Qt::AlignCenter);
connect(ui->label_2, &QLabel::linkActivated, [=](QString url){
        QDesktopServices::openUrl(QUrl(url));
    });

        QLabel es capaz de mostrar texto enriquecido especificado mediante un subconjunto de etiquetas HTML 4.

        openExternalLinks especifica si QLabel debería abrir enlaces automáticamente usando QDesktopServices::openUrl() en lugar de emitir la señal linkActivated().

5. Imagen de visualización del ejemplo 3

QLabel *label = new QLabel(this);
QPixmap picture1 ;
picture1.load("D:/creator-gs-01.png");
label = new QLabel(this);
label->setPixmap( picture1);
label->setScaledContents(true);//自适应大小
label->resize(200, 200);

         QPixmap carga una imagen png y luego muestra la imagen a través del método setPixmap. El valor predeterminado de scaledContents es falso, cuando está habilitado y la etiqueta muestra un mapa de píxeles, escalará el mapa de píxeles para llenar el espacio disponible.

6. El ejemplo 4 muestra GIF

QLabel *label = new QLabel(this);
ui->label->resize(320,200);
QMovie *movie = new QMovie("D:/earth.gif");
movie->setSpeed(200);//设置速度
movie->start();
ui->label->setMovie(movie);

         Use QMovie para cargar el archivo gif que se reproducirá y configure la velocidad de reproducción, 200 significa 200%, que es la velocidad 2X.

7. Ejemplo 5 Mecanismo de socios

ui->label->setText("&Name:");
ui->label_2->setText("&Phone:");
ui->label->setBuddy(ui->lineEdit);
ui->label_2->setBuddy(ui->lineEdit_2);

        Extraiga un diseño de cuadrícula en la interfaz ui, agregue dos Qlabels y dos ediciones de línea, establezca la primera etiqueta en &Name, la segunda etiqueta en &Phone y configure los dos cuadros de entrada como sus socios respectivamente. Cuando el usuario presiona Alt+N, el foco salta al campo Nombre, y cuando el usuario presiona Alt+P, el foco salta al campo Teléfono.

        El mecanismo de amigos solo funciona con qlabels que contienen texto con el prefijo "&", que se configura como una tecla de método abreviado.

Supongo que te gusta

Origin blog.csdn.net/u014491932/article/details/131740931
Recomendado
Clasificación