Qt中的常用控件

常用控件

Qt为我们应用程序界面开发提供的一系列的控件,下面我们介绍两种最常用的两种,所有控件的使用方法我们都可以通过帮助文档获取。

QLabel控件使用

QLabel是我们最常用的控件之一,其功能很强大,我们可以用来显示文本,图片和动画等。

  • 显示文字 (普通文本、html)
    通过QLabel类的setText函数设置显示的内容。
void	setText(const QString &)
  • 可以显示普通文本字符串
QLable *label = new QLable;
label->setText(“Hello, World!);
  • 可以显示HTML格式的字符串
    比如显示一个链接:
QLabel * label = new QLabel(this);
label ->setText("Hello, World");
label ->setText("<h1><a href=\"https://www.baidu.com\">
百度一下</a></h1>");
label ->setOpenExternalLinks(true);

其中setOpenExternalLinks()函数是用来设置用户点击链接之后是否自动打开链接,如果参数指定为true则会自动打开,如果设置为false,想要打开链接只能通过捕捉linkActivated()信号,在自定义的槽函数中使用QDesktopServices::openUrl()打开链接,该函数参数默认值为false。

QLabel * label = new QLabel(this);
label ->setText("Hello, World");
label ->setText("<h1><a href=\"https://www.baidu.com\">
百度一下</a></h1>");
// label->setOpenExternalLinks(true);
connect(label, &QLabel::linkActivated, 
this, &MyWidget::slotOpenUrl);

//槽函数	
void MyWidget::slotOpenUrl(const QString &link)
{
    QDesktopServices::openUrl(QUrl(link));
}
  • 显示图片
    可以使用QLabel的成员函数setPixmap设置图片。
void	setPixmap(const QPixmap &)

首先定义QPixmap对象

QPixmap pixmap;

然后加载图片

pixmap.load(":/Image/boat.jpg");

最后将图片设置到QLabel中

QLabel *label = new QLabel;
label.setPixmap(pixmap);

显示动画
可以使用QLabel 的成员函数setMovie加载动画,可以播放gif格式的文件。

void	setMovie(QMovie * movie)

首先定义QMovied对象,并初始化:

QMovie *movie = new QMovie(":/Mario.gif");

播放加载的动画:

movie->start();

将动画设置到QLabel中:

QLabel *label = new QLabel;
label->setMovie(movie);
QLineEdit

Qt提供的单行文本编辑框

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

设置编辑框内容

void	setText(const QString &);

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

void	setEchoMode(EchoMode mode);

EchoMode是一个枚举类型,一共定义了四种显示模式:
QLineEdit::Normal 模式显示方式,按照输入的内容显示。
QLineEdit::NoEcho 不显示任何内容,此模式下无法看到用户的输入。
QLineEdit::Password 密码模式,输入的字符会根据平台转换为特殊字符。
QLineEdit::PasswordEchoOnEdit 编辑时显示字符否则显示字符作为密码。
另外,我们再使用QLineEdit显示文本的时候,希望在左侧留出一段空白的区域,那么,就可以使用QLineEdit给我们提供的setTextMargins函数:

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

用此函数可以指定显示的文本与输入框上下左右边界的间隔的像素数。

  • 设置输入提示
    如果我们想实现一个与百度的搜索框类似的功能:输入一个或几个字符,下边会列出几个跟输入的字符相匹配的字符串,QLineEdit要实现这样的功能可以使用该类的成员函数setComleter()函数来实现:
void	setCompleter(QCompleter * c);

创建QCompleter对象,并初始化

QStringList tipList;
tipList<< “Hello” << “how are you” << “Haha” << “oh, hello”;
// 不区分大小写
QCompleter *completer = new QCompleter(tipList, this);
completer->setCaseSensitivity(Qt::CaseInsensitive);

QCompleter类的setCaseSensitivity()函数可以设置是否区分大小写,它的参数是一个枚举类型:
Qt::CaseInsensitive 不区分大小写
Qt::CaseSensitive 区分大小写
如果不设置该属性,默认匹配字符串时是区分大小写的。
另外我们还可以设置字符串其中某一部分匹配,此功能可通过QCompleter类的setFilterMode函数来实现,函数声明如下:

void	setFilterMode(Qt::MatchFlags filterMode);

其参数为Qt定义的宏,有多重类型,具体可参考Qt帮助稳定,要实现我们上边提到的功能,参数可以使用 Qt::MatchContains:

completer->setFilterMode(Qt::MatchContains);

属性设置完成之后,将QCompleter对象设置到QLineEdit中:

QLineEdit *edit = new QLineEdit(this);
edit->setCompleter(completer);

在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百万攻城狮

你的鼓励是我最大的创作动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值