autojs获取控件文本_PyQt5文本类控件

本文介绍了PyQt5中的文本类控件,包括Label、LineEdit和TextEdit的使用方法。Label用于展示不可编辑文本,支持设置文本、对齐方式、换行和超链接;LineEdit用于单行文本输入;TextEdit则适用于多行文本编辑,可显示HTML内容。此外,文章还提及了SpinBox和QLCDNumber控件。
摘要由CSDN通过智能技术生成

文本类控件主要用来显示或者编辑文本信息,PyQt5中文本类控件主要有Label、LineEdit、TextEdit、SpinBox、DoubleSpinBox、LCDNumber等。

一、Label标签控件

主要用于显示用户不能编辑的文本,标识窗体上的对象如给文本框、列表框添加描述信息。对应PyQt5中QLabel类。直接在Qt Designer设计工具的属性编辑器中设置

d9ed4a25e5f63dd6dc4fe2fad827b07c.png

1、设置标签文本,设置text属性;

7f0cefaaa65d4419fe67574a17359a32.png

        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(30, 30, 314, 81))
        self.label.setText("标题")

2、设置标签文本对齐方式,用alignment属性,Horizontal用来设置标签文本水平对齐方式,可选AlignLeft左对齐,AlignHCenter水平居中对齐,AlignRight右对齐,AlignJustify两端对齐。同理,Verrtical用来设置标签文本垂直对齐方式,可选Align Top顶部对齐,AlignVCenter垂直居中对齐,AlignBottom底部对齐。

20f1d21e0199f47363a3330ca2f2291f.png

# 设置文本对齐方式代码
self.label.setAlignment(QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)

3、设置文本换行显示,标签宽度不足,系统默认显示部分文字,这种情景下,可设置标签中文本换行显示。wordWrap属性复选框选中即可。

533937fdb18745b514317e3dd50f0a47.png

# # 设置长文本,并换行显示代码
self.label.setText("Python数据分析实例每日分享,从菜鸟到大神")
self.label.setWordWrap(True)

4、为标签设置超链接,在QLabel类的setText()方法使用HTML中标签设置超链接文本,然后将Label标签中的setOpenExternalLinks()

方法设置成True。

# 设置超链接
self.label.setText("百度")
self.label.setOpenExternalLinks(True) #允许访问超链接

5、为Label标签设置图片,用到setPixmap()方法,该方法需要QPixmap对象,表示图标对象。

from PyQt5.QtGui import QPixmap # 导入QPixmap类self.label.setPixmap(QPixmap('test.png')) # 为label设置图片

6、获取标签文本,使用QLabel类的text()方法,self.label.text().

二、LineEdit单

PyQt5中,子线程不能直接访问UI控件,因为PyQt5只能在主线程中更新UI。但您可以通过信号和槽机制在主线程和子线程之间进行通信。 以下是一个例子,演示了如何在子线程中获取窗口控件的内容并将其发送到主线程: ```python from PyQt5.QtCore import QThread, pyqtSignal from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLineEdit, QPushButton, QLabel import sys class Worker(QThread): finished = pyqtSignal(str) def __init__(self, parent=None): super().__init__(parent) def run(self): # 在这里调用子线程需要执行的任务,例如获取窗口控件内容 content = "子线程获取到的内容" self.finished.emit(content) class Window(QWidget): def __init__(self, parent=None): super().__init__(parent) self.resize(400, 300) self.lineEdit = QLineEdit() self.pushButton = QPushButton("获取内容") self.label = QLabel() layout = QVBoxLayout(self) layout.addWidget(self.lineEdit) layout.addWidget(self.pushButton) layout.addWidget(self.label) self.pushButton.clicked.connect(self.start_worker) self.worker = Worker() self.worker.finished.connect(self.update_label) def start_worker(self): self.worker.start() def update_label(self, content): self.label.setText(content) if __name__ == '__main__': app = QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_()) ``` 在这个例子中,我们创建了一个`Worker`,它继承自`QThread`,并包含一个`finished`信号。在`run`方法中,我们可以执行子线程需要执行的任务,例如获取窗口控件内容,并通过`finished`信号将结果发送到主线程。 在`Window`中,我们创建了一个`Worker`实例,并将其`finished`信号连接到`update_label`方法。在`start_worker`方法中,我们启动子线程。当子线程完成并发出`finished`信号时,`update_label`方法将被调用,主线程中的标签控件将更新为子线程获取到的内容。 您可以根据您的具体需求修改代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值