PyQt5 QLabel控件
- QLabel常用方法
- 显示动画
- 超链接
- QLabel常用信号
QLabel 就是常见的标签,可以用来显示文字(包括纯文本和富文本),图片及动画。
QLabel常用方法
方法 | 描述 |
---|---|
margin | 保存 QLabel 控件中内容与边框之间的距离(边距),margin 的默认值为 0 |
setMargin() | 修改QLabel 控件中内容与边框之间的距离(边距) |
alignment() | 获得QLabel 控件中内容的对齐方式,默认情况下,QLabel 控件中的内容保持左对齐和垂直居中 该属性的值可以通过调用 alignment() 方法获得,可以借助 setAlignment() 方法修改。 |
setAlignment | 设置文本的对齐方式 Qt.AlignLeft:水平方向靠左对齐 Qt.AlignRight:水平方向靠右对齐 Qt.AlignCenter:水平方向居中对齐 Qt.AlignJustify:水平方向调整间距两端对齐 Qt.AlignTop:垂直方向靠上对齐 Qt.AlignBottom:垂直方向靠下对齐 Qt.AlignVCenter:垂直方向居中对齐 |
setIndent() | 设置文本缩进值 |
setPixmap() | setPixmap() |
text() | 获得 Qlabel 的文本内容 |
setText() | 设置 Qlabel 的文本内容 |
selectedText() | 返回所选择的字符 |
setBuddy() | 设置 QLabel的buddy(伙伴),及使用 Qlabel 设置快捷键,会在快捷键后将焦点设置到其 buddy 上,这里用到了 Qlabel 的交互控件功能,其 Qlabel 必须是文本内容,并且使用 “&” 符号快捷键 |
setWordWrap() | 设置是否允许换行 |
hide() | 隐藏文本框 |
clear() | 清空 QLabel 控件内所有显示的内容 |
setToolTip(QString) | 设置信息提示,当用户的鼠标放在QLabel 文本框上时会自动跳出文字 |
setToolTipDuration(int) | 设置提示信息出现的时间,单位是毫秒 |
setStyleSheet(QString) | 设置 QLabel 文本框的样式 |
setGeometry(int x, int y, int w, int h) | 设置 QLabel 文本框的位置 (x, y) 以及尺寸 (w, h) |
import sys
from PyQt5.QtWidgets import *
from PyQt5.Qt import *
from PyQt5.QtGui import QFontclass Set_qlabel(QWidget):def __init__(self):super().__init__()self.init_ui()def init_ui(self):self.setGeometry(500, 500, 500, 500)label1 = QLabel("姓名:", self)label1.setGeometry(50, 50, 200, 50)font1 = QFont("隶书", pointSize=20)label1.setFont(font1)label1.setAlignment(Qt.AlignVCenter | Qt.AlignRight)label2 = QLabel("班级:", self)label2.setGeometry(50, 200, 200, 50)font2 = QFont("楷体", pointSize=12)label2.setFont(font2)label2.setStyleSheet("color:red")label2.setMargin(15)print(label2.margin(), label2.alignment(), label2.indent(), label2.text())#label2.setStyleSheet("color:#ff6600;")if __name__ == "__main__":app = QApplication(sys.argv)widget = Set_qlabel()widget.show()sys.exit(app.exec_())
import sys
from PyQt5.Qt import *class QlabelClass(QWidget):def __init__(self):super().__init__()self.lb1 = QLabel('学点python不难!', self)self.lb2 = QLabel('我内容不换行', self)self.lb3 = QLabel('我内容会自动换行', self)self.lb3.setWordWrap(True)self.bt1 = QPushButton('输入内容1', self)self.bt2 = QPushButton('输入内容2', self)layout1 = QVBoxLayout()layout1.addWidget(self.lb1)layout1.addWidget(self.lb2)layout1.addWidget(self.lb3)layout1.addWidget(self.bt1)layout1.addWidget(self.bt2)self.bg1 = QButtonGroup(self)self.ra1 = QRadioButton('左边', self)self.ra2 = QRadioButton('中间', self)self.ra3 = QRadioButton('右边', self)self.bg1.addButton(self.ra1, 1)self.bg1.addButton(self.ra2, 2)self.bg1.addButton(self.ra3, 3)layout2 = QHBoxLayout()layout2.addWidget(self.ra1)layout2.addWidget(self.ra2)layout2.addWidget(self.ra3)layout3 = QVBoxLayout()layout3.addLayout(layout1)layout3.addLayout(layout2)self.setLayout(layout3)self.bg1.buttonClicked.connect(self.rb_clicked)self.bt1.clicked.connect(self.show_dialog)self.bt2.clicked.connect(self.show_dialog)def rb_clicked(self):if self.bg1.checkedId() == 1:self.lb1.setAlignment(Qt.AlignVCenter | Qt.AlignLeft)elif self.bg1.checkedId() == 2:self.lb1.setAlignment(Qt.AlignCenter)elif self.bg1.checkedId() == 3:self.lb1.setAlignment(Qt.AlignVCenter | Qt.AlignRight)def show_dialog(self):sender = self.sender()if sender == self.bt1:text, ok = QInputDialog.getText(self, '内容1', '请输入内容1:')if ok:self.lb2.setText(text)elif sender == self.bt2:text, ok = QInputDialog.getText(self, '内容2', '请输入内容2:')if ok:self.lb3.setText(str(text))if __name__ == "__main__":app = QApplication(sys.argv)widget = QlabelClass()widget.setGeometry(100, 100, 100, 100)widget.show()sys.exit(app.exec_())
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *class QlabelClass(QWidget):def __init__(self):super().__init__()pix = QPixmap('dog.png')lb1 = QLabel(self)lb1.setGeometry(0, 0, 700, 300)lb1.setPixmap(pix)lb1.setStyleSheet("border: 2px solid red")lb2 = QLabel(self)lb2.setGeometry(0, 300, 300, 300)lb2.setPixmap(pix)lb2.setStyleSheet("border: 2px solid red")lb2.setScaledContents(True)if __name__ == "__main__":app = QApplication(sys.argv)widget = QlabelClass()widget.setGeometry(100, 100, 700, 600)widget.show()sys.exit(app.exec_())
显示动画
- movie = QMovie(“th.gif”) 创建QMovie对象。
- self.lb.setMovie(movie),要在Qlabel显示电影,将QMovie对象传递给QLabel.setMovie()
- movie.start() 开始播放
- movie.stop() 停止播放
- setPaused() 暂停播放
超链接
- setOpenExternalLinks(True):打开超链接
- setText(“感谢关注菜鸟教程”) 网址填写方法
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *class QlabelClass(QWidget):def __init__(self):super().__init__()self.lb = QLabel(self)self.lb.setGeometry(50, 50, 300, 200)self.bt1 = QPushButton('开始', self)self.bt1.setGeometry(0, 0, 100, 30)self.bt2 = QPushButton('停止', self)self.bt2.setGeometry(300, 0, 100, 30)self.lb2 = QLabel(self)self.lb2.setText("<a href='https://www.runoob.com'>感谢关注菜鸟教程</a>")vbox = QVBoxLayout()vbox.addWidget(self.lb)vbox.addWidget(self.bt1)vbox.addWidget(self.bt2)vbox.addWidget(self.lb2)self.setLayout(vbox)# 显示的开始什么self.pix = QPixmap('th.gif')self.lb.setPixmap(self.pix)self.lb.setScaledContents(True)self.bt1.clicked.connect(self.run)self.bt2.clicked.connect(self.run)self.lb2.linkActivated.connect(self.link_clicked)self.lb2.linkHovered.connect(self.link_hovered)self.lb2.setOpenExternalLinks(True)def link_clicked(self):print("点击了超链接")def link_hovered(self):self.lb2.setToolTip("鼠标滑过")def run(self):movie = QMovie("th.gif")self.lb.setMovie(movie)if self.sender() == self.bt1:movie.start()else:movie.stop()self.lb.setPixmap(self.pix)if __name__ == "__main__":app = QApplication(sys.argv)widget = QlabelClass()widget.setGeometry(100, 100, 400, 400)widget.show()sys.exit(app.exec_())
QLabel常用信号
- linkHovered(): 当鼠标滑过Qlabel时触发。
- linkActivated(): 当鼠标点击Qlabel时触发。