PYQT基本配置记录(二)

本文详细介绍了Qt界面开发中常用控件的使用,包括按钮、单行文本、标签、数字输入、多行文本、组合选择、进度条、单选框、复选框、文件选择等。讲解了如何修改控件属性、查看和使用信号槽函数,通过实例展示了各种控件的功能实现,如按钮点击事件、文本内容变化监听、数值设置、文件选择等。
摘要由CSDN通过智能技术生成

本文主要是针对一些常用的控件做的介绍,还有就是通过常用的槽函数的方法进行查找这个控件有的函数,以及控件的一些属性的修改

  • 常用控件
  • 怎么查看控件的函数
  • 属性含义以及修改

1、基本模版

新建qt文件的操作上一篇文章已经介绍过了,这里增加一个模版,就是每次新生成只要在这个里面进行修改就行了
在这里插入图片描述
代码如下

import sys
from PyQt5 import QtWidgets
from linedit import Ui_Form
from PyQt5.QtCore import pyqtSlot # 引入槽函数

class test(QtWidgets.QMainWindow,Ui_Form):
    def __init__(self):
        super(test, self).__init__() # 注册初始化事件
        self.setupUi(self)
        self.setWindowTitle("demo")


if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    calc = test()
    calc.show()
    sys.exit(app.exec_())

2、按钮

使用设计师拉取一个按钮,可以看到最右边的属性里面有按钮名,这个是类名,一般我们按照命名规范修改下有利于后续代码编写
在这里插入图片描述
属性这个页面往下拖可以看到这个绿色的部分,这里一般是一些外观性的东西,什么标题,外框之类的,不跟什么事件相关联的,起到一种表达和美观性的作用,比如我这里修改按钮上的文本为按钮
在这里插入图片描述
查看按钮的信号与槽函数,进入编辑查看,默认状态是编辑窗口部件,点击修改为编辑信号和槽
在这里插入图片描述
进入之后其他地方会变为灰色,这个点击控件在往外拖一下就能看到信号和槽函数了
在这里插入图片描述
要退出编辑信号和槽函数的话,再次选择编辑窗口部件即可
在这里插入图片描述
开始编辑代码,这里注意一下,信号和槽函数有两种办法,一种是向我上一种那样的就是通过connect来绑定,或者使用这种默认的函数,可以看带下面图中已经说明了这种图的写法
在这里插入图片描述
代码如下

import sys
from PyQt5 import QtWidgets
from button import Ui_Form
from PyQt5.QtCore import pyqtSlot # 引入槽函数

class button(QtWidgets.QMainWindow,Ui_Form):
    def __init__(self):
        super(button, self).__init__() # 注册初始化事件
        self.setupUi(self)
        self.setWindowTitle("demo")

    @pyqtSlot() # 不加这个会执行两下我也不太清楚
    def on_button_clicked(self):
        print('按钮点击')
        self.button.setText('点击')
        self.button.setEnabled(False) # 禁用按钮


if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    calc = button()
    calc.show()
    sys.exit(app.exec_())

效果如下
在这里插入图片描述
下面尝试使用绑定函数的方法来实现这个功能
在这里插入图片描述
代码如下

import sys
from PyQt5 import QtWidgets
from button import Ui_Form
from PyQt5.QtCore import pyqtSlot # 引入槽函数

class button(QtWidgets.QMainWindow,Ui_Form):
    def __init__(self):
        super(button, self).__init__() # 注册初始化事件
        self.setupUi(self)
        self.setWindowTitle("demo")
        self.button.clicked.connect(self.onBtnClick)

    def onBtnClick(self):
        print('按钮点击')


if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    calc = button()
    calc.show()
    sys.exit(app.exec_())

3、单行文本

设计师设计页面如下,使用按钮是做一些辅助功能,后面会机继续加入
在这里插入图片描述
还是在绿色部分可以看到一些有意思的东西,比如我加入了一些提示内容
在这里插入图片描述
查看信号和槽函数
在这里插入图片描述
这个主要是有一个动态检查和静态检查的功能

  • 动态检查:输入文本时刻检查
  • 静态检查,别的事件触发检查文本框

在这里插入图片描述
代码如下

import sys
from PyQt5 import QtWidgets
from linedit import Ui_Form
from PyQt5.QtCore import pyqtSlot # 引入槽函数

class test(QtWidgets.QMainWindow,Ui_Form):
    def __init__(self):
        super(test, self).__init__() # 注册初始化事件
        self.setupUi(self)
        self.setWindowTitle("demo")

    @pyqtSlot() # 不加这个会执行两下我也不太清楚
    def on_button_clicked(self):
        self.lineEdit.setText("按钮设置文本")
        self.lineEdit.clear() # 文本清楚

    def on_lineEdit_textChanged(self): # 文本内容改变
        getText = self.lineEdit.text()
        print('文本内容改变')
        print(getText) # 获取文本内容


if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    calc = test()
    calc.show()
    sys.exit(app.exec_())

在这里插入图片描述

4、标签

在设计师中写入如下页面,同样可以修改一些属性
在这里插入图片描述
标签挺简单的,就是写文本读文本,当然这个可以作文图像哦,因为图像就是矩阵嘛,可以表达出来的

代码如下

# 标签
import sys
from PyQt5 import QtWidgets
from label import Ui_Form
from PyQt5.QtCore import pyqtSlot # 引入槽函数

class test(QtWidgets.QMainWindow,Ui_Form):
    def __init__(self):
        super(test, self).__init__() # 注册初始化事件
        self.setupUi(self)
        self.setWindowTitle("demo")

    @pyqtSlot() # 不加这个会执行两下我也不太清楚
    def on_button_clicked(self):
        self.label.setText("修改标签文字")

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    calc = test()
    calc.show()
    sys.exit(app.exec_())

5、数字输入

在设计师中插入下面两个元素
在这里插入图片描述
有两个,一个小数,一个整数,一些重要的属性我也拿出来了
在这里插入图片描述
数字操作的话也比较简单,详情我都写下面了
在这里插入图片描述
代码如下

# 数字输入
import sys
from PyQt5 import QtWidgets
from number import Ui_Form
from PyQt5.QtCore import pyqtSlot # 引入槽函数

class test(QtWidgets.QMainWindow,Ui_Form):
    def __init__(self):
        super(test, self).__init__() # 注册初始化事件
        self.setupUi(self)
        self.setWindowTitle("demo")

    @pyqtSlot() # 不加这个会执行两下我也不太清楚
    def on_button_clicked(self):
        # getnumber = self.spinBox.value() # 获取数字
        self.spinBox.setValue(10) # 设置数字值
        # print(getnumber)

    # @pyqtSlot()
    def on_spinBox_valueChanged(self):
        getnumber = self.spinBox.value()
        print(getnumber)

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    calc = test()
    calc.show()
    sys.exit(app.exec_())

6、多行文本

相比单行文本就是可以多几行,设计师中效果如下:
在这里插入图片描述
至于读写文件还有一些常见的改动文本变化的操作和单行文本一样,这里主要关注这个追加文本
在这里插入图片描述
代码如下

import sys
from PyQt5 import QtWidgets
from text import Ui_Form
from PyQt5.QtCore import pyqtSlot # 引入槽函数

class test(QtWidgets.QMainWindow,Ui_Form):
    def __init__(self):
        super(test, self).__init__() # 注册初始化事件
        self.setupUi(self)
        self.setWindowTitle("demo")

    @pyqtSlot() # 不加这个会执行两下我也不太清楚
    def on_button_clicked(self):
        self.textEdit.append("追加文本")

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    calc = test()
    calc.show()
    sys.exit(app.exec_())

7、组合选择

在设计师中加入如下内容,就和串口助手选串口的那个有点像
在这里插入图片描述
这里我主要是做了一些读取当前选择值的操作,代码如下

# 组合选择框
import sys
from PyQt5 import QtWidgets
from zuhe import Ui_Form
from PyQt5.QtCore import pyqtSlot # 引入槽函数

class test(QtWidgets.QMainWindow,Ui_Form):
    def __init__(self):
        super(test, self).__init__() # 注册初始化事件
        self.setupUi(self)
        self.setWindowTitle("demo")
        self.comboBox.addItem("选择一") # 添加选项
        self.comboBox.addItems(["aaa","dfsd","fsafd"]) # 多个添加

    @pyqtSlot() # 不加这个会执行两下我也不太清楚
    def on_button_clicked(self):
        gettext = self.comboBox.currentText() # 获取当前选择的文本
        print(gettext)


if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    calc = test()
    calc.show()
    sys.exit(app.exec_())

8、进度条

在设计师中加入如下控件
在这里插入图片描述
主要是设置内容,重置,然后通过通过按钮设置进度条的值,代码如下

import sys
from PyQt5 import QtWidgets
from jindu import Ui_Form
from PyQt5.QtCore import pyqtSlot # 引入槽函数

class test(QtWidgets.QMainWindow,Ui_Form):
    def __init__(self):
        super(test, self).__init__() # 注册初始化事件
        self.setupUi(self)
        self.setWindowTitle("demo")
        self.progressBar.reset() # 重置进度条

    @pyqtSlot() # 不加这个会执行两下我也不太清楚
    def on_button_clicked(self):
        # self.progressBar.setRange(0,0) # 进度条设置最小最大都是0就一直忙碌
        self.progressBar.setValue(50) # 设置大小,默认是100

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    calc = test()
    calc.show()
    sys.exit(app.exec_())

9、单选框

在设计师中加入如下内容,这里注意,这个单选框是会分组的,默认是大背景作为一个组,一个组的话同时只能有一个被选中,但是可以手动分组
在这里插入图片描述
手动分组操作如下
在这里插入图片描述
可以看到这样就可以多个被选中了
在这里插入图片描述
修改元素的值
在这里插入图片描述
查看槽函数
在这里插入图片描述

还是一样的分为静态和动态
在这里插入图片描述
代码如下

import sys
from PyQt5 import QtWidgets
from danxuan import Ui_Form
from PyQt5.QtCore import pyqtSlot # 引入槽函数

class test(QtWidgets.QMainWindow,Ui_Form):
    def __init__(self):
        super(test, self).__init__() # 注册初始化事件
        self.setupUi(self)
        self.setWindowTitle("demo")

    @pyqtSlot() # 不加这个会执行两下我也不太清楚
    def on_button_clicked(self):
        print("按钮点击")
        daxuan1 = self.radioButton.isChecked()
        daxuan2 = self.radioButton_2.isChecked()
        print(daxuan1,daxuan2)

    @pyqtSlot()
    def on_radioButton_clicked(self):
        print("按钮改变")

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    calc = test()
    calc.show()
    sys.exit(app.exec_())

效果如下
在这里插入图片描述

10、复选框

就是变为方框,基本一样
在这里插入图片描述
代码如下

import sys
from PyQt5 import QtWidgets
from fuxuan import Ui_Form
from PyQt5.QtCore import pyqtSlot # 引入槽函数

class test(QtWidgets.QMainWindow,Ui_Form):
    def __init__(self):
        super(test, self).__init__() # 注册初始化事件
        self.setupUi(self)
        self.setWindowTitle("demo")

    @pyqtSlot() # 不加这个会执行两下我也不太清楚
    def on_button_clicked(self):
        print("按钮点击")
        daxuan1 = self.checkBox.isChecked()
        daxuan2 = self.checkBox_2.isChecked()
        print(daxuan1,daxuan2)


if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    calc = test()
    calc.show()
    sys.exit(app.exec_())

11、文件选择

在设计师中拉取一个按钮,使用按钮来打开文件
在这里插入图片描述
主要是通过下面的方式实现的
在这里插入图片描述
运行效果如下
在这里插入图片描述
打开后返回文件路径,代码如下:

import os
import sys
from PyQt5.QtWidgets import *
from file_name import Ui_Form
from PyQt5.QtCore import pyqtSlot # 引入槽函数

class test(QMainWindow,Ui_Form):
    def __init__(self):
        super(test, self).__init__() # 注册初始化事件
        self.setupUi(self)
        self.setWindowTitle("demo")

    @pyqtSlot() # 不加这个会执行两下我也不太清楚
    def on_button_clicked(self):
        print("按钮点击")
        para1,para2 = QFileDialog.getOpenFileName(self,'chose_file',os.getcwd(),'file(*.py)')
        print(para1,para2)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    calc = test()
    calc.show()
    sys.exit(app.exec_())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

桃成蹊2.0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值