【PyQt】11-QTextEdit、QPushButton

这篇具有很好参考价值的文章主要介绍了【PyQt】11-QTextEdit、QPushButton。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

1、展示文本输入框的使用。
2、几种按键的使用方法。
3、单选按键时候,状态切换的槽函数怎么写。


一、文本输入-QTextEdit

1.1 代码

'''
#Author :susocool
#Creattime:2024/2/14
#FileName:023-QtextEdit多行输入文本
#Description: 

'''

from PyQt5.QtWidgets import *
import sys

class QTextEditDemo(QWidget):
    def __init__(self):
        super(QTextEditDemo, self).__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('多行文本输入')
        self.resize(300,200)

        self.textEdit = QTextEdit()
        self.buttonText = QPushButton('显示文本')
        self.buttonHTML = QPushButton('显示HTML')

        layout = QVBoxLayout()
        layout.addWidget(self.textEdit)
        layout.addWidget(self.buttonText)
        layout.addWidget(self.buttonHTML)

        self.setLayout(layout)

        self.buttonText.clicked.connect(self.onClick_ButtonText)
        self.buttonHTML.clicked.connect(self.onClick_ButtonHTML)


    def onClick_ButtonText(self):
        self.textEdit.setPlainText('HEllO WORLD,世界~') # 纯文本

    def onClick_ButtonHTML(self):
        self.textEdit.setHtml('<font color = "blue" size = 10 >HELLO WROLD</font>')


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

1.2 运行结果

文本显示
【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt
HTML显示
【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt

二、QPushButton

类型

  • QAstractButton-按钮控件的基类
    它提供了一些通用的方法和信号,可以用于派生其他类型的按钮。一般情况下,你不会直接使用 QAbstractButton 类。
  • AToolButton - 工具按钮
  • QPushButton -普通的按钮
  • QRadioButton -单选按钮
  • QcheckBox -复选框

2.1.1 按钮上添加文本

有两种方法

 self.button1 = QPushButton( '按钮1' )
self.button1.setText('First Button')

两种展示结果是一样的。
【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt

2.1.2 按键的弹跳效果

        self.button1.setCheckable(True) # 将按钮设置为可选中状态。这意味着用户可以点击按钮以切换其选中状态。
        self.button1.toggle()

没按下时候
【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt
按下的情况
【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt

打印获取按下的按键

self.button1.clicked.connect(lambda: self.whichButton(self.button1))

lambda 是 Python 中的一个关键字,用于创建小而简洁的匿名函数。匿名函数是指没有具体名称的函数,通常用于只需要一次性使用的简单函数场景。

这个匿名函数的作用是在调用时,执行 self.whichButton(self.button1) 这个方法。匿名函数没有传入参数,因此它会直接调用 self.whichButton(self.button1) 方法,并将 self.button1 作为参数传递进去。

使用 lambda 创建匿名函数的好处在于,能够在不需创建独立函数的情况下,快速定义一个简单的函数功能,并在需要时直接传递和调用。
【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt

2.1.3 两个信号可以绑定一个槽。

【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt
【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt

2.1.4 带图标的按键

【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt

运行结果

【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt

2.1.5 按键不可用以及回车默认

【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt

完整代码

'''
#Author :susocool
#Creattime:2024/2/14
#FileName:024-Button
#Description: 

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

class QPushButtonDemo(QDialog):
    def __init__(self):
        super(QPushButtonDemo, self).__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('Button')
        self.resize(300,300)

        self.button1 = QPushButton( '按钮1' )
        # self.button1.setText('First Button')
        self.button1.setCheckable(True) # 将按钮设置为可选中状态。这意味着用户可以点击按钮以切换其选中状态。
        self.button1.toggle()

        self.button2 = QPushButton('图像按钮')
        self.button2.setIcon(QIcon('./管理困难.png'))

        self.button3 = QPushButton('不可用')
        self.button3.setEnabled(False)

        self.button4 = QPushButton('&Mybutton')     # 添加热键Alt+M 即可选中
        self.button4.setDefault(True)   # 将按钮设置为默认按钮。默认按钮在界面中按下 Enter 键时被激活
                                        #(默认情况下,第一个添加到窗口的按钮就是默认按钮)
                                        
        self.button1.clicked.connect(lambda: self.whichButton(self.button1))
        self.button1.clicked.connect(self.buttonState)
        self.button2.clicked.connect(lambda:self.whichButton(self.button2))
        self.button4.clicked.connect(lambda:self.whichButton(self.button4))


        layout = QVBoxLayout()
        layout.addWidget(self.button1)
        layout.addWidget(self.button2)
        layout.addWidget(self.button3)
        layout.addWidget(self.button4)
        self.setLayout(layout)

    def whichButton(self,btn):
        print("被单击的按钮是<" + btn.text() + '>')

    def buttonState(self):
        if self.button1.isChecked():
            print('按键1被选中')

        else:
            print("按键1未被选中")


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

运行结果
【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt

2.2 单选按键控件

这段主要体会状态切换时候的槽函数怎么写。

'''
#Author :susocool
#Creattime:2024/2/15
#FileName:025-单选按键控件
#Description:
'''

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

class RadioButtonDemo(QWidget):
    def __init__(self):
        super(RadioButtonDemo, self).__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('可选按键')

        self.button1 = QRadioButton('单选按钮1')
        self.button1.setCheckable(True)

        self.button2 = QRadioButton('单选按钮2')


        layout = QHBoxLayout()
        layout.addWidget(self.button1)
        layout.addWidget(self.button2)
        self.setLayout(layout)

        self.button1.toggled.connect(self.buttonState)    # 状态切换
        self.button2.toggled.connect(self.buttonState)

    def buttonState(self):
        radioButton = self.sender()
        if radioButton.isChecked() == True:
            print('<' + radioButton.text() + '>被选中')
        else:
            print ( '<' + radioButton.text () + '>被取消选中状态')


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

运行结果

【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt

2.3 复选框(多选框)

'''
#Author :susocool
#Creattime:2024/2/15
#FileName:026-复选框
#Description:三种形式的复选框
'''

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

class QCheckBoxDemo(QWidget):
    def __init__(self):
        super(QCheckBoxDemo, self).__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('复选框')

        self.checkBox1 = QCheckBox('复选框控件1')
        self.checkBox1.setChecked(True)

        self.checkBox2 = QCheckBox('普通复选框')

        self.checkBox3 = QCheckBox('半选中')
        self.checkBox3.setChecked(True)
        self.checkBox3.setCheckState(Qt.PartiallyChecked)

        self.checkBox1.stateChanged.connect(lambda:self.checkboxState(self.checkBox1))
        self.checkBox2.stateChanged.connect(lambda:self.checkboxState(self.checkBox2))
        self.checkBox3.stateChanged.connect(lambda:self.checkboxState(self.checkBox3))

        layout = QHBoxLayout()
        layout.addWidget(self.checkBox1)
        layout.addWidget(self.checkBox2)
        layout.addWidget(self.checkBox3)
        self.setLayout(layout)

    def checkboxState(self,cb):
        # checkState()返回值是一个整数,而在打印的时候我们希望以字符串的形式展现,因此注意格式!!!
        checkState1 = self.checkBox1.text() + ',isChecked=' + str(self.checkBox1.isChecked()) + ',checkState = ' + str(self.checkBox1.checkState()) + ' \n '
        checkState2 = self.checkBox2.text() + ',isChecked=' + str(self.checkBox2.isChecked()) + ',checkState = ' + str(self.checkBox2.checkState()) + ' \n '
        checkState3 = self.checkBox3.text() + ',isChecked=' + str(self.checkBox3.isChecked()) + ',checkState = ' + str(self.checkBox3.checkState()) + ' \n '
        print(checkState1 + checkState2 + checkState3)


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


运行结果

未选中状态
【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt
选择复选框1
【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt
【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt
普通复选框
【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt

半选中
【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt
【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt
【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt
简单总结下来就是复选框有两种状态,而半选中框有三种状态。

2.4 下拉列表按键

'''
#Author :susocool
#Creattime:2024/2/15
#FileName:027-下拉列表按键
#Description:
'''
import sys
from PyQt5.QtWidgets import *


class QComboBoxDemo(QWidget):
    def __init__(self):
        super(QComboBoxDemo, self).__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('下拉列表')
        self.resize(300,100)

        self.label = QLabel('请选择编程语言')

        self.combo = QComboBox()
        self.combo.addItem('C++')
        self.combo.addItem('Python')
        self.combo.addItems(['C语言','C#','Java'])    # 注意这里是s

        # 当前索引变化
        self.combo.currentIndexChanged.connect(self.selectionChange)

        layout = QVBoxLayout()
        layout.addWidget(self.combo)
        layout.addWidget(self.label)
        self.setLayout(layout)

    # currentIndexChanged默认传递两个参数,因此槽设置两个参数
    def selectionChange(self,i):
        self.label.setText(self.combo.currentText())
        self.label.adjustSize() # 自适应调整大小

        for count in range(self.combo.count()):
            print('item' + str(count) + '='+self.combo.itemText(count))
        print('current index',i,'selection changed',self.combo.currentText())



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



运行结果

【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt
【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt


总结

这篇文章依旧没有总结文章来源地址https://www.toymoban.com/news/detail-827749.html

到了这里,关于【PyQt】11-QTextEdit、QPushButton的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【PyQt5】logging封装+pyqt5展示系统日志

    创建logging对象 设置日志输出级别 指定日志输出格式 指定日志输出路径 指定日志输出文件 控制台输出 文件输出 7.1 指定FileHandler 7.2 设置日志输出格式 7.3 设置过滤条件 7.4 将文件输出日志添加过滤条件 7.5 对logger增加handler日志处理器 1.cmd中输入命令,将.ui转换成.py 2.重新封

    2024年02月06日
    浏览(43)
  • PyQt5入门(一)——PyQt5与QtDesigner的安装

    首先,需要确保你已经安装了Python和PIP,因为使用PIP来安装PyQt5是最简便的方法。以下是在Windows和Ubuntu环境下配置并安装PyQt5以及QtDesigner的步骤: 打开命令提示符(CMD)。 运行以下命令安装PyQt5:pip install pyqt5 安装完成后,在命令提示符中运行“python”命令,然后输入“im

    2024年02月02日
    浏览(52)
  • [pyqt5]关于在pyqt5界面上鼠标位置问题

    先上代码,主要看鼠标移动事件里面代码 通过运行代码可以发现: 上面这2行就是相当于屏幕左上角坐标了

    2024年02月15日
    浏览(42)
  • PyQt5入门1——PyQt5的安装与Hello World应用

    搞搞可视化界面哈,虽然不一定有用,但是搞一下。 PyQt实现了一个Python模块集。它有超过300类,将近6000个函数和方法。它是一个多平台的工具包,可以运行在所有主要操作系统上,包括UNIX,Windows和Mac。 PyQt采用双许可证,开发人员可以选择GPL和商业许可。在此之前,GPL的版

    2024年02月12日
    浏览(59)
  • PyQT5和PyQt6的区别

    PyQt6和PyQt5是两个版本的PyQt框架,具有以下区别: 1.PyQt6是PyQt的最新版本,而PyQt5是较旧的版本。PyQt6提供了更多的功能和改进,以提供更好的用户体验和开发体验。 2.PyQt6支持Python 3.10及更高版本,而PyQt5支持Python 3.5到3.9版本。 3.PyQt6对底层Qt库的版本要求更高,支持Qt 6及更高

    2024年02月07日
    浏览(44)
  • PyQt6 和 PyQt5 的差异

    PyQt6 是 PyQt5 的下一个版本,但两个版本的写法基本上其实大同小异,这篇教学会介绍 PyQt6 和 PyQt5 有何差异。 快速预览: .exec_() 改为 .exec() 方法的位置或名称改变 不需要高 DPI 缩放属性 支援 Qt的资源 特定平台 其他细节差异 PyQt6 教学 - PyQt6 和 PyQt5 的差异 在 Python 2.7

    2024年02月15日
    浏览(43)
  • [Python GUI PyQt] PyQt5快速入门

    本文为博主个人对自己学习 PyQt5 GUI技术的纲要式的总结,主要的目的是以比较宏观的视角再次对 PyQt5 这一项技术作一次总结,通过该文可以快速让读者建立起 PyQt5 最基本的知识体系,了解 PyQt5 的 基本界面的设计 、 信号与槽 和 多线程 等知识,并简单学会使用 Qt Designer 工

    2024年04月15日
    浏览(53)
  • python GUI工具之PyQt5模块,pyCharm 配置PyQt5可视化窗口

    https://doc.qt.io/qt-5/qtwidgets-module.html https://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum 一、简介 PyQt是Qt框架的Python语言实现,由Riverbank Computing开发,是最强大的GUI库之一。PyQt提供了一个设计良好的窗口控件集合,每一个PyQt控件都对应一个Qt控件。 PyQt5是由一系列Python模块组成,有超过6

    2024年02月11日
    浏览(54)
  • 【PyQt】PyQt5进阶——串口上位机及实时数据显示

    【Python】PyQt5入门   最近在用PyQt做一个串口上位机,需要串口通信和实时显示曲线。这里简单记录一些关键点。   这个是在安装PyQt5时自动安装的组件,使用方法比较简单,主要是两个模块: QSerialPort , QSerialPortInfo   以上就是串口部分的代码,比较简单,利用代码提

    2024年02月12日
    浏览(56)
  • mac python3.9安装pyqt5、qt5、pyqt5-tools

    pyqt6安装参考 PyQT6:看这一篇就够了 python PyQt6 常用操作以及常见问题解决 pycharm配置tools 参考链接 以下pip命令自行更具自己环境选择pip或pip3 在安装pyqt前必须先安装sip包 完成sip的安装后,安装pyqt和pyqt-tools, 可以直接使用命令: 若是使用pip3安装报错 AttributeError: module ‘sipb

    2024年02月14日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包