PyQt5第三部分-显示类基本控件:QLabel, QLineEdit, QTextEdit, QProgressBar

0 前言

>>返回Python系列文章目录<<

控件内不能含有其他控件的,称为基本控件,部分基本控件经常用于显示信息

基本控件继承关系:

QWidget

  • QFrame
    • QAbstractScrollArea
      • QTextEdit
    • QLabel
    • QLineEdit
    • QProgressBar

1 标签 QLabel

QLabel是APP界面的一块只读区域,用于显示文本、显示图片、放置gif动画、超链接和提示标记

1.1 方法列表 QLabel QPixmap

QLabel类说明
self=QLabel(QIcon, text, parent)创建实例和文字
QIcon->控件图标,QIcon类,可省略
text->字符串,可省略
parent->父控件,使用布局时可省略
self.setText(text)设置控件文字
text->字符串
=self.text()读取控件文字,输出字符串
self.clear()清除内容
self.setPixmap(picture)设置控件显示一个图片
picture->QPixmap类
self.setAlignment()输入PyQt5.QtCore中常量
Qt.AlignLeft:文字水平方向靠左对齐
Qt.AlignRight:文字水平方向靠右对齐
Qt.AlignCenter:文字水平方向居中对齐
Qt.AlignJustify:文字水平方向调整间距两端对齐
继承自QWidget类的方法
x, y, width, height, ...几何类方法,详见窗口的几何数据
QPixmap类说明
from PyQt5.QtGui import *
self=QPixmap(file)
创建实例
file->文件路径
self.scaled(width, height,
AspectRatioMode, TransformationMode)
设置图片尺寸
AspectRatioMode:PyQt.QtCore中可选常量:
Qt.IgnoreAspectRatio: 不保持图片长宽比
Qt.KeepAspectRatio: 保持长宽比并保持整个图片可见
Qt.KeepAspectRatioByExpanding: 保持长宽比并填满显示区域

TransformationMode:PyQt.QtCore中可选常量:
FastTransformation: 快速缩放
SmoothTransformation: 光滑缩放

1.2 示例 文字标签

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *

class MyWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.move(500, 400)
        self.setFixedSize(300, 300)
        self.setWindowTitle('标签')
        hlayout = QHBoxLayout()
        self.setLayout(hlayout)
        label = QLabel('开始')
        label.setAlignment(Qt.AlignCenter)  # Qt.AlignCenter需要载入PyQt5.QtCore库
        hlayout.addWidget(label)
        btn = QPushButton()
        hlayout.addWidget(btn)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MyWindow()
    window.show()
    sys.exit(app.exec_())

在这里插入图片描述

1.3 示例 图片标签

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *

class MyWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.move(500, 400)
        self.setFixedSize(300, 300)
        self.setWindowTitle('标签')
        hlayout = QHBoxLayout()
        self.setLayout(hlayout)
        label = QLabel()
        label.setFixedSize(150, 150)
        img = QPixmap('switch.jpg')
        # 设定图片尺寸
        result = img.scaled(label.width(), label.height(), Qt.IgnoreAspectRatio, Qt.SmoothTransformation)
        label.setPixmap(result)
        hlayout.addWidget(label)
        btn = QPushButton()
        hlayout.addWidget(btn)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MyWindow()
    window.show()
    sys.exit(app.exec_())

在这里插入图片描述

2 单行文本框 QLineEdit

单行文本框有输入密码时使用的掩码功能,自己制作工具APP用不到,就没写

2.1 方法列表

QLineEdit类说明
self=QLineEdit(text, parent)创建实例和文字
text->字符串,非必须
parent->父控件,使用布局时可省略
self.setText(text)设置控件文字
text->字符串
=self.text()读取控件文字,输出字符串
self.setAlignment()输入PyQt5.QtCore中常量
Qt.AlignLeft:文字水平方向靠左对齐
Qt.AlignRight:文字水平方向靠右对齐
Qt.AlignCenter:文字水平方向居中对齐
Qt.AlignJustify:文字水平方向调整间距两端对齐
self.setMaxLength(n)设置文本框所允许输入的最大字符数
self.setReadOnly(False)设置文本为只读
self.setValidator()输入PyQt5.QtGui中的类
QIntValidator():限制输入整数
QDoubleValidator():限制输入浮点数
QRegexpValidator():检查输入是否符合正则表达式
self.textChanged.connect(fun)修改文本内容时,触发槽函数
self.editingFinished.connect(fun)编辑文本结束时,触发槽函数
继承自QWidget类的方法
x, y, width, height, ...几何类方法,详见窗口的几何数据

2.2 示例 单行文本框计算器

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *

class MyWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.move(500, 400)
        self.setFixedSize(300, 300)
        self.setWindowTitle('单行文本框')
        glayout = QGridLayout()
        self.setLayout(glayout)

        self.line_edit1 = QLineEdit()
        self.line_edit1.setAlignment(Qt.AlignRight)
        self.line_edit1.setValidator(QIntValidator())
        glayout.addWidget(self.line_edit1, 0, 0)

        label1 = QLabel('+')
        glayout.addWidget(label1, 0, 1)

        self.line_edit2 = QLineEdit()
        self.line_edit2.setAlignment(Qt.AlignRight)
        self.line_edit2.setValidator(QIntValidator())
        glayout.addWidget(self.line_edit2, 0, 2)

        label2 = QLabel('=')
        glayout.addWidget(label2, 0, 3)

        self.line_edit3 = QLineEdit()
        self.line_edit3.setAlignment(Qt.AlignRight)
        self.line_edit3.setReadOnly(True)
        glayout.addWidget(self.line_edit3, 0, 4)

        btn = QPushButton('计算')
        self.btn.clicked.connect(self.intCalculate)
        glayout.addWidget(btn, 1, 2)

    def intCalculate(self):
        self.line_edit3.setText(str(int(self.line_edit1.text())+int(self.line_edit2.text())))

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MyWindow()
    window.show()
    sys.exit(app.exec_())

在这里插入图片描述

3 富文本框 QTextEdit

QTextEdit 是一个所见即所得的富文本编辑框,支持输入文字段落,带修饰的超文本,图片,表格等文本类型
本文只关注纯文本类型数据

3.1 方法列表

QTextEdit类说明
self=QTextEdit(parent)创建实例和文字
parent->父控件,使用布局时可省略
self.setPlainText(text)设置多行文本框的内容
text->字符串
=self.toPlainText()返回多行文本框的文本内容,返回字符串
self.append(text)追加内容
text->字符串
self.clear()清除多行文本框的内容
self.setPlaceholderText(text)设置占位文本
text->字符串
=self.placeholderText()获取占位文本,返回字符串
继承自QWidget类的方法
x, y, width, height, ...几何类方法,详见窗口的几何数据

3.2 示例 显式点击次数

import sys
from PyQt5.QtWidgets import *

class MyWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.move(500, 400)
        self.setFixedSize(300, 300)
        self.setWindowTitle('第一个APP')
        vlayout = QVBoxLayout()
        self.setLayout(vlayout)
        self.count = 0

        self.text_edit = QTextEdit()
        self.text_edit.setPlaceholderText('点击次数')
        vlayout.addWidget(self.text_edit)

        btn = QPushButton()
        btn.setText('点击')
        btn.clicked.connect(self.btnClicked)
        vlayout.addWidget(btn)
        
    def btnClicked(self):
        self.count = self.count + 1
        self.text_edit.append('点击了{0}次'.format(self.count))

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MyWindow()
    window.show()
    sys.exit(app.exec_())

在这里插入图片描述

4 进度条 QProgressBar

4.1 方法列表 QProgressBar QTimer

QProgressBar类说明
self=QProgressBar(parent)创建实例
parent->父控件,使用布局时可省略
self.setRange(start, end)设置范围
start, end->数字
self.setValue(value)设置当前值
self.setFormat(text)设置文本
self.setOrientation()设置PyQt5.QtCore中的常数
Qt.Horizontal: 水平方向
Qt.Vertical: 竖直方向
继承自QWidget类的方法
x, y, width, height, ...几何类方法,详见窗口的几何数据
QTimer类说明
self=QTimer()创建实例
self.start(period)开始计时,设置相应周期
period->ms
=self.isActive()计时器是否激活,返回bool
self.stop()停止计时器

4.2 实例 时间进度条

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *

class MyWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.move(500, 400)
        self.setFixedSize(300, 300)

        vlayout = QVBoxLayout()
        self.pbar = QProgressBar()
        vlayout.addWidget(self.pbar)
        self.btn = QPushButton('开始')
        self.btn.clicked.connect(self.onStart)
        vlayout.addWidget(self.btn)
        self.setLayout(vlayout)

        self.timer = QTimer()
        self.timer.timeout.connect(self.update_func)
        self.step = 0

    def update_func(self):
        if self.step >= 100:
            self.timer.stop()
            return
        self.step = self.step + 1
        self.pbar.setValue(self.step)

    def onStart(self):
        if self.timer.isActive():
            self.timer.stop()
            self.btn.setText('Start')
        else:
            self.timer.start(100)
            self.btn.setText('Stop')

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MyWindow()
    window.show()
    sys.exit(app.exec_())

在这里插入图片描述
>>返回Python系列文章目录<<

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyQt5Python语言中一个非常流行的GUI编程工具包,其中包含了许多常用的控件方法。下面是一些常见控件的方法大全: 1. QLabel控件方法: - setText():设置标签文本内容。 - setAlignment():设置文本的对齐方式。 - setPixmap():设置标签的图片。 2. QPushButton控件方法: - setText():设置按钮上的文本。 - setIcon():设置按钮上的图标。 - setShortcut():设置按钮的快捷键。 3. QRadioButton和QCheckBox控件方法: - setText():设置选项的文本。 - isChecked():判断是否被选中。 - setChecked():设置是否选中。 4. QComboBox控件方法: - addItem():在下拉列表中添加项。 - setCurrentIndex():设置当前选中的项。 - currentText():获取当前选中的文本。 5. QLineEdit控件方法: - setText():设置文本内容。 - text():获取文本内容。 - setValidator():设置输入的验证器。 6. QProgressBar控件方法: - setRange():设置进度条的范围。 - setValue():设置进度条的当前值。 - reset():重置进度条。 7. QSlider和QSpinBox控件方法: - setValue():设置当前的值。 - value():获取当前的值。 - setRange():设置值的范围。 8. QTextEdit和QPlainTextEdit控件方法: - setText():设置文本内容。 - toPlainText():获取文本内容。 - setReadOnly():设置只读模式。 这只是一些常见的控件方法,PyQt5还有很多其他控件和方法。希望这些方法能帮助您更好地使用PyQt5进行GUI编程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值