第15.48节、PyQt显示部件:TextBrowser、CalendarWidget、LCDNumber、ProgressBar、Label和Horizontal/VerticaLine简介

一、概述

在Designer中,显示部件有Label、Text Browser、Calendar Widget、LCD Number、Progress Bar、Horizontal Line和Vertical Line、graphics View、OpenGL Widget。在前两章节已经将最复杂的graphics View、OpenGL Widget进行了介绍,本部分将剩余的显示部件进行一个简单介绍,重点介绍一些特色功能,普通的属性、方法和信号就不介绍了,请大家参考官方文档。

二、Label标签功能简介

Label标签对应类为QLabel,在整个PyQt界面设计中使用非常多,有几个功能需要在此重点说明一下:

  1. QLabel不但能显示文本,而且能显示图片和视频以及富文本,但需要注意,显示富文本时必须是标准HTML4的富文本才能识别,并且建议是短的文本,且不能有不能识别的标记内容,如果有哪怕是textFormat设置为富文本也会导致所有文本内容都不能识别,就将整个html原文完整展示;
  2. 关注一下buddy属性,这个是可以将QLabel和一个其他可以操作的部件进行关联,用户通过输入ALT+QLabel的文档由与符号(&)指定的快捷键就会自动将焦点跳转到关联部件;
  3. 关注一下textInteractionFlags属性,这个属性可以指定对QLabel中文本的操作响应方式;
  4. html富文本中的链接点击或鼠标悬停上会触发信号linkActivated、linkHovered。

三、TextBrowser富文本浏览窗

TextBrowser显示部件对应类为 QTextBrowser,可以理解为是一个HTML浏览器部件,QTextBrowser是 QTextEdit的子类,是一种增加了导航功能的QTextEdit的只读模式。

如下几个功能在此重点说一下:

  1. 除了使用QTextEdit的文本操作功能外,还可以通过source属性来指定文本来源一个文件,文件的路径由searchPaths和当前路径来决定;
  2. 对文本中超链可以控制是否可以直接用鼠标和键盘点击打开;
  3. 对于非文件和qrc资源的内容可以控制是否作为外部链接调用web浏览器打开;
  4. 有几个类似浏览器导航的操作触发的信号,包括:anchorClicked、backwardAvailable、forwardAvailable、highlighted、historyChanged、sourceChanged;
  5. 有几个导航历史数据的访问方法,包括:backwardHistoryCount、clearHistory、forwardHistoryCount、historyTitle、historyUrl。

四、Calendar Widget

Calendar Widget部件是一个以月为视图来选择日期的部件,并且默认选中当前日期,可以访问当前展示月的年和月,对应类为QCalendarWidget。

在此说明几点:

  1. 日历的很多外观可以设置,如实现显示星期以及怎么显示,第一列日期从哪个星期日期开始、是否显示每行日期在当年内的周序(取值为:1-53)、周末是否红色标记、年月是否有快速选择栏、是否显示网格等
  2. 获取日期数据时可以通过dateTextFormat、weekdayTextFormat属性设置日期数据的格式
  3. 可以通过翻页信号currentPageChanged获取当前显示的年和月

五、LCD Number

LCD Number部件是个类似数字液晶显示器的部件,功能就是显示数字相关内容,使用非常方便和简单,具体功能请参考官方文档。在此有二点说明如下:

  1. 显示的字符支持0/O、1、2、3、4、5/S、6、7、8、9/g、减号、小数点、A、B、C、D、E、F、h、h、L、O、P、r、u、u、Y、冒号、度数°(在代码中字符串指定其为单引号)和空格。其他字符都不支持,如果某个字母的大小写中只支持一种,要显示字母大小写都会转换成可以支持的大小写形式的相同字母,如R会转成r,a会转成A,其他无法支持的字符QLCDNumber用空格替换
    :上面用反斜杠分隔的字符在展示时是一样的,如展示时5和S实际上都展示的5
  2. 显示的字符无法通过value属性获取,value只能获取对应的数字值,如果要获取对应显示的字符串,可以通过重写display()槽方法来实现。

六、Progress Bar

Progress Bar进度条部件可以用于给用户提示操作处理的进度,可以设置最大值和最小值以及当前值,具体功能请参考官方文档。在此只有一点需要说明:

  • 如果最大值和最小值设置为0,则进度条的进度指示循环移动表示一种忙的状态

七、Horizontal Line和Vertical Line

Horizontal Line和Vertical Line用于在界面上显示一条横线或竖线,实际上这两个部件对应的类就是QFrame(请参考《第15.36节 PyQt(Python+Qt)入门学习:containers容器类部件QFrame框架部件介绍》),只是将QFrame的frameShape属性固定为VLine或HLine。因此在此就不再介绍了。

跟老猿学Python、学5G!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 要在PyQt的QTextBrowser显示图片,可以使用QTextDocument插入HTML代码来实现。下面是一个示例代码: ```python from PyQt5.QtWidgets import QApplication, QTextBrowser from PyQt5.QtGui import QTextDocument app = QApplication([]) browser = QTextBrowser() # 插入HTML代码,其中<img>标签的src属性指定图片路径 html = '<html><body><img src="example.png"></body></html>' document = QTextDocument() document.setHtml(html) # 将QTextDocument设置为QTextBrowser的文本内容 browser.setDocument(document) browser.show() app.exec_() ``` 在上面的代码中,我们使用了QTextDocument类来创建一个文档对象,然后将HTML代码设置为文档的内容。接下来,我们将QTextDocument对象设置为QTextBrowser的文本内容,这样就可以在QTextBrowser显示图片了。 需要注意的是,图片的路径应该是相对于程序运行时的路径。如果图片文件不在程序运行时的当前目录下,需要指定完整的路径。 ### 回答2: 在PyQt中,要在TextBrowser显示图片,可以通过嵌入HTML代码来实现。首先,需要创建一个TextBrowser对象,并将其设置为只读模式。然后,使用setText()方法将HTML代码插入到TextBrowser中,其中包含一个img标签来指定要显示的图片的路径。最后,调用show()方法来显示TextBrowser。 下面是一个简单的示例代码: ```python from PyQt5.QtWidgets import QApplication, QTextBrowser app = QApplication([]) # 创建TextBrowser对象 textBrowser = QTextBrowser() # 设置为只读模式 textBrowser.setReadOnly(True) # 插入HTML代码,显示图片 html_code = '<img src="image.jpg">' textBrowser.setHtml(html_code) # 显示TextBrowser textBrowser.show() app.exec() ``` 在这个示例中,我们使用`<img>`标签指定了一个名为`image.jpg`的图片文件。你可以将该文件替换为实际存在的图片文件,并将其路径传递给`src`属性。运行代码后,图片将显示TextBrowser中。 值得注意的是,TextBrowser并不是专门用于显示图片的控件,因此可能会存在显示效果上的限制。如果你需要更灵活和强大的图片显示功能,可以考虑使用QLabel或QGraphicsView等其他控件。 ### 回答3: 在PyQt中使用TextBrowser显示图片可以通过以下步骤实现: 1. 导入必要的模块:首先,需要从PyQt5模块导入QtWidgets和QtCore。可以使用以下代码行导入这些模块: ``` from PyQt5.QtWidgets import QApplication, QMainWindow, QTextBrowser from PyQt5.QtCore import QUrl ``` 2. 创建应用程序和主窗口:使用以下代码创建一个PyQt应用程序并创建一个主窗口: ``` app = QApplication([]) window = QMainWindow() ``` 3. 创建一个TextBrowser部件:使用以下代码创建一个TextBrowser部件,并将其设置为主窗口的中心部件: ``` text_browser = QTextBrowser() window.setCentralWidget(text_browser) ``` 4. 加载图片:使用下面的代码加载图片并将其显示TextBrowser中: ``` image_path = "path/to/image.jpg" # 设置图片路径 image_url = QUrl.fromLocalFile(image_path) # 将图片路径转换为QUrl对象 text_browser.insertHtml("<img src='{}'>".format(image_url.toString())) # 在TextBrowser中插入HTML标签显示图片 ``` 5. 显示主窗口:使用以下代码显示主窗口和应用程序: ``` window.show() app.exec_() ``` 完整的示例代码如下: ```python from PyQt5.QtWidgets import QApplication, QMainWindow, QTextBrowser from PyQt5.QtCore import QUrl app = QApplication([]) window = QMainWindow() text_browser = QTextBrowser() window.setCentralWidget(text_browser) image_path = "path/to/image.jpg" image_url = QUrl.fromLocalFile(image_path) text_browser.insertHtml("<img src='{}'>".format(image_url.toString())) window.show() app.exec_() ``` 请确保将路径“path/to/image.jpg”替换为您实际的图片路径。运行代码后,您将能够在TextBrowser部件中看到显示的图片。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

LaoYuanPython

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

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

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

打赏作者

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

抵扣说明:

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

余额充值