【QT】学习课-QSpinBox的使用(9)!

文章介绍了如何在Python环境下利用QtDesigner创建GUI,并通过QSpinBox控件控制图片模糊程度。用户选择图片后,调整QSpinBox的值可以改变图片的模糊化状态,展示了QSpinBox的setMinimum、setMaximum、setValue和singleStep等方法的运用。
摘要由CSDN通过智能技术生成

本节来学习下QSpinBox的使用,上一节说了QSlider的使用,其实两个控件使用的方式很类似,那么还是一样通过简单的case来深入了解下QSpinBox的使用。

一.环境配置

1.python 3.7.8  

可直接进入官网下载安装:Download Python | Python.org

2.QT Designer 

官方下载路径:Qt Designer Download for Windows and Mac

二.实例演示

1.直接用Qt Designer 来设计界面的布局,如下:

该GUI设计,主要功能是做一个图片模糊转换,这边左边是选择我们本地图片的一个按钮(1打开)即可获取本地路径下的图片,获取图片后显示在如下图所述的左边图片,按钮2即可将该图片调整为模糊属性显示在右边图片处,通过调整QSpinBox控件的值(value)来实现图片模糊化程度。

2.QSpinBox属性编辑:

方法描述
setMinimum()设置QSpinBox的最小值
setMaximum()设置QSpinBox的最大值
setValue()设置QSpinBox的值
singleStep()

设置QSpinBox的步长

3.图片获取:

def open(self):  # 读取文件,点击 pushButton 触发
        self.Path, _ = QFileDialog.getOpenFileName(self,  "../images/", "*.mp4 *.avi *.mov")
        print("Open: ", self.Path)
        return

执行该代码会打开本地文件的图片、视频类型文件,选择其文件。

def saveSlot(self):  # 保存图像文件
        # 选择存储文件
        fileName, tmp = QFileDialog.getSaveFileName(self, "Save Image", "../images/", '*.png; *.jpg; *.tif')
        if self.img1.size == 1:
            return
        # OpenCV 写入图像文件
        ret = cv.imwrite(fileName, self.img1)
        if ret:
            print(fileName, self.img.shape)
        return

选择了其图片或视频路径,执行上述代码则是将目标图片或视频文件写入到UI上面。

4.执行QSpinBox触发,让图片变模糊

def getSpinBoxValue(self):
    self.sigma = self.spinBox.value()  # 修改模糊尺度
    print("SpinBoxValue=", self.sigma)
    ksize = (self.sigma, self.sigma) 
    blur = cv.GaussianBlur(self.img1, ksize, 0) 
    self.refreshShow(blur, self.label_2)  # 刷新显示

执行上述代码,输出如下: 

通过调整QSpinBox的值,图片逐渐模糊化。

三.总结

这边用了一个实例来演示QSpinBox的使用,当然该控件的用处远不及此,根据自己的实际开发需要,灵活运用就好了。

@Neng

Qt中,如果你想要使用QLineEdit来实现类似于QSpinBox的功能,即让用户输入特定类型的数值(如整数或浮点数),虽然QLineEdit本身是一个文本框,但你可以结合信号槽机制以及一些额外的处理来实现这一目标。以下是大致步骤: 1. **设置单行输入**: - 使用QLineEdit的基本设置,保持单行模式,以限制用户只输入一行内容。 ```cpp QLineEdit *lineEdit = new QLineEdit(parent); lineEdit->setAlignment(Qt::AlignRight); // 右对齐以便显示数值 ``` 2. **接收输入**: - 监听textChanged()信号,当文本内容变化时,进行处理。 ```cpp QObject::connect(lineEdit, &QLineEdit::textChanged, this, &YourClass::valueEdited); ``` 3. **数据转换**: - 创建一个`valueEdited()`槽函数,将用户的文本转换成所需的数值类型(例如整数或浮点数)。如果输入无法转换,可以提示用户。 ```cpp void YourClass::valueEdited(const QString &newText) { double value; if (newText.toDouble(&value)) { // 更新相关变量或模型,存储用户输入的数值 } else { QMessageBox::warning(this, "错误", "请输入有效的数字"); } } ``` 4. **范围控制**: - 如果你需要限制输入范围,可以在`valueEdited()`函数中添加相应的检查和处理。 5. **按键事件**: - 可能还需要处理Enter键或者其他数字键盘键,来模拟QSpinBox的部分快捷功能,例如+/-按钮、小数点。 **注意:** 这种方法不如QSpinBox那样直观和易于使用,因为它缺乏像下拉箭头和直接选择小数点等功能。对于需要复杂输入验证和用户交互体验的应用场景,建议直接使用QSpinBox
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Penley.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值