版权声明:原创不易,如引用,请附原文链接 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);