QT Pyside2 常用按钮控件的方法(一)

from base_control.action_class import Action
from PySide2.QtWidgets import QApplication
from PySide2.QtUiTools import QUiLoader
from PySide2.QtCore import QFile,QSize
from PySide2.QtGui import QIcon
from PySide2.QtWidgets import QMessageBox

class Control1(Action):

    def __init__(self):

        ui_file = QFile("./uiDic/clickButton.ui")
        ui_file.open(QFile.ReadOnly)
        ui_file.close()

        # 从文件中加载UI定义
        # 从 UI 定义中动态 创建一个相应的窗口对象
        # 注意:里面的控件对象也成为窗口对象的属性了
        # 比如 self.ui.button , self.ui.textEdit
        self.ui = QUiLoader().load(ui_file)


    def buttonControl(self):
        '''
        普通按钮
        :return:
        '''
        self.ui.clickButton.setIcon(QIcon('./uiDic/lol.jpg'))   # 使用图片设置按钮图标
        self.ui.clickButton.setIconSize(QSize(30, 30))   # 设置图标大小
        self.ui.clickButton.setText("小跳蛙")   # 设置按钮文本
        self.ui.clickButton.setEnabled(True)    # 设置按钮是否被禁用,False为禁用,True为启用,应用场景:某些操作后按钮不允许点击
        self.ui.clickButton.clicked.connect(self.display)  # 将点击的信号连接到clickButton方法上,即点击后执行连接的方法

    def lineEditControl(self):
        '''
        单行文输入框
        :return:
        '''
        # .textChanged()函数会获取文本框值改变的信号,当获取这个信号时则执行后面的方法
        self.ui.lineEdit.textChanged.connect(self.handleTextChange)   #将单行文本框中输入的值作为参数传递给handleTextChange方法
        self.ui.lineEdit.returnPressed.connect(self.printText)  # 在光标在单行文本框内时,点击回车就调用连接的方法
        self.ui.lineEdit.setPlaceholderText('请在这里输入URL')  # 设置单行输入框内的暗纹提示语
        self.ui.lineEdit.setText("预设的内容")  # 在输入框内预设内容
        text = self.ui.lineEdit.text() # 获取单行文本框的输入的值
        QMessageBox.about(self.ui, '点击结果', text)    # 弹窗展示文本框输入的结果

    def plainTextEditControl(self):
        '''
        多行文本输入框
        :return:
        '''
        self.ui.plainTextEdit.textChanged.connect(self.handleTextChange1)  # Qt在调用这个信号处理函数时,不会传入文本框目前的内容字符串,作为参数,这个行为 和 单行文本框不同。
        self.ui.plainTextEdit.cursorPositionChanged.connect(self.handleTextChange1) # 当文本框中的光标位置变动,就会发出 cursorPositionChanged 信号,可以这样指定处理该信号的函数
        text = self.ui.plainTextEdit.toPlainText() # 获取多行文本框的内容
        # 获取 QTextCursor 对象
        textCursor =self.ui.plainTextEdit.textCursor()
        selection = textCursor.selectedText()
        self.ui.plainTextEdit.setPlaceholderText('测试多行输入文本框的暗纹提示') # 设置多行输入框内的暗纹提示语
        self.ui.plainTextEdit.setPlainText("设置多行输入文本框内的默认值")  # 设置多行文本框的内默认值
        self.ui.plainTextEdit.appendPlainText('末尾添加内容并换行')  # 在编辑框末尾添加文本内容并自动换行
        self.ui.plainTextEdit.insertPlainText('小工具')  # 光标处插入文本,不会自动换行
        self.ui.plainTextEdit.document().setMaximumBlockCount(1000)  # 设置多行文本框的最大行数

    def textBrowserControl(self):
        '''
        通常用来显示一些操作日志信息、或者不需要用户编辑的大段文本内容,内容无法编辑
        获取文本、设置文本、清除文本、光标出添加文本 等等, 都和上面介绍的 多行纯文本框是一样的
        :return:
        '''
        self.ui.textBrowser.append('多行展示文本框末尾添加文本')   # 多行展示文本框末尾添加文本,不会自动换行
        self.ui.textBrowser.ensureCursorVisible() #在末尾添加了内容,自动翻滚到当前添加的这行,自动换行

    def labelControl(self):
        '''
        常见的标签,可以用来显示文字(包括纯文本和富文本)、图片 甚至动画。
        怎么用QLabel 显示图片呢?
        可以在 Qt Designer上 属性编辑器 QLabel 栏 的 pixmap 属性设置中选择图片文件指定。
        :return:
        '''
        self.ui.label.setText("自定义标签框")

    def pushButton(self):
        self.ui.pushButton.clicked.connect(self.clearLine)
    def clearLine(self):
        '''
        文本清除
        :return:
        '''
        return self.ui.lineEdit.clear()   # .clear()清除输入框内的内容

    def handleTextChange(self,inputText):      # 当单行文本框调用该函数时,会将文本框内输入的字符串当做参数传入该方法,即:inputText=输入值
        '''
        捕捉文本框内容变化执行对应的方法
        :param inputText:
        :return:
        '''
        print(inputText)

    def handleTextChange1(self):
        print(1)

    def display(self):
        '''
        提示文本弹窗
        :return:
        '''
        QMessageBox.about(self.ui, '信息', '信息提示文本')   # 弹窗展示文本框输入的结果
        QMessageBox.information(self.ui, '信息', '信息提示文本')
        QMessageBox.critical(self.ui, '错误', '错误提示文本!')
        QMessageBox.warning(self.ui, '警告', '警告提示文本')

    def printText(self):
        print("hahah")


app = QApplication([])
stats = Control1()
stats.pushButton()
# stats.buttonControl()
stats.ui.show()
app.exec_()

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值