06 Qt常用控件(QLabel、QLineEdit)

版权声明:原创不易,如引用,请附原文链接 https://blog.csdn.net/Chiang2018/article/details/88978958

1、QLabel(标签)

QLabel是我们最常用的控件之一,其功能很强大,我们可以用来显示文本,图片和动画等,使用前需要加入<QLabel>头文件。

1、显示字符串

显示字符串使用的是:void setText(const QString &)函数:

    QLabel* label = new QLabel(this);
    label->setText("显示字符串");

2、显示HTML格式字符串

QLabel * label = new QLabel(this);
/* 设置文本格式为HTML字符串 */
label ->setText("<h1><a href=\"https://www.baidu.com\">百度一下</a></h1>");

/* 设置用户点击链接之后是否自动打开链接,默认为false,如果为false,想要打开链接只能通过捕捉
linkActivated()信号,在自定义的槽函数中使用QDesktopServices::openUrl()打开链接 */
// label->setOpenExternalLinks(true);

/* 关联linkActivated()信号与槽 */
connect(label, &QLabel::linkActivated, this, &MyWidget::slotOpenUrl);

//槽函数	
void MyWidget::slotOpenUrl(const QString &link)
{
    /* 打开链接 */
    QDesktopServices::openUrl(QUrl(link));
}

3、显示图片

可以使用QLabel的成员函数setPixmap设置图片:void setPixmap(const QPixmap &),需要加入<QPixmap>头文件

/* 定义QPixmap对象 */
QPixmap pixmap;

/* 加载已加入资源文件中的图片 */
pixmap.load(":/Image/boat.jpg");


QLabel *label = new QLabel(this);
/* 将图片设置到QLabel中 */
label.setPixmap(pixmap);

/* 使图片使用QLabel的大小 */
label->setScaledContents(true);

4、显示动画

可以使用QLabel 的成员函数setMovie加载动画,可以播放gif格式的文件:void setMovie(QMovie * movie),需要加入<QMovie>头文件。

    QLabel *label = new QLabel; 
   
    /* 定义QMovied对象,并初始化 */
    QMovie *movie = new QMovie(":/ssss/C:/Users/wangmumu/Desktop/timg.gif");
    /* 播放加载的动画 */
    movie->start();
    /* 将动画设置到QLabel中 */
    label->setMovie(movie);

    /* 设置动画大小自适应 */
    label->setScaledContents(true);
    

2、QLineEdit(单行文本编辑框)

1、获取/设置内容

//获取编辑框内容使用text(),函数声明如下:

QString	text() const;

//设置编辑框内容
void	setText(const QString &)

  2、设置显示模式

使用QLineEdit类的setEchoMode () 函数设置文本的显示模式,函数声明:

void setEchoMode(EchoMode mode);
/*
EchoMode是一个枚举类型,一共定义了四种显示模式:
QLineEdit::Normal	正常模式显示方式,按照输入的内容显示。
QLineEdit::NoEcho	不显示任何内容,此模式下无法看到用户的输入。
QLineEdit::Password	密码模式,输入的字符会根据平台转换为特殊字符。
QLineEdit::PasswordEchoOnEdit	编辑时显示字符否则显示字符作为密码。

*/

另外可以使用QLineEdit给我们提供的setTextMargins函数,指定显示的文本与输入框上下左右边界的间隔的像素数:

void setTextMargins(int left, int top, int right, int bottom)

3、设置输入提示

如果我们想实现一个与百度的搜索框类似的功能:输入一个或几个字符,下边会列出几个跟输入的字符相匹配的字符串。

示例代码如下,需要包含<QStringList>、<QComleter>头文件:

    QLineEdit* linedit= new QLineEdit(this);

    //创建一个QStringList 对象
    QStringList tipList;
    //向QStringList 对象中输入几个QString类对象
    tipList<< "Hello" << "how are you" << "haha" << "oh, hello";

    //创建一个QCompleter 对象
    QCompleter *completer = new QCompleter(tipList, this);
    // 设置不区分大小写,默认为Qt::CaseSensitive,即区分大小写
    completer->setCaseSensitivity(Qt::CaseInsensitive);
  
    //设置文本提示器
    linedit->setCompleter(completer);

猜你喜欢

转载自blog.csdn.net/Chiang2018/article/details/88978958
06