如何将QLineEdit背景变成进度条

2023-12-12

该代码创建一个对话框QLineEdit and a QPushButton。 单击按钮时我想要QLineEdit变成一个进度条,显示按下按钮触发的过程的进度。当该过程完成时QLineEdit应该恢复到正常的“LineEdit”外观。如何实现这一目标?

enter image description here

这是 Photoshop 编辑的想法:

enter image description here

A progress bar could be a thin line at the bottom of QLineEdit: enter image description here

from PyQt4 import QtCore, QtGui
import time

class Dialog(QtGui.QDialog):
    def __init__(self, parent=None):
        QtGui.QDialog .__init__(self, parent)
        mainLayout = QtGui.QVBoxLayout()
        lineEdit = QtGui.QLineEdit('ITEM 001')
        mainLayout.addWidget(lineEdit)
        button = QtGui.QPushButton('Push Button')
        button.clicked.connect(self.buttonClicked)
        mainLayout.addWidget(button)
        self.setLayout(mainLayout)

    def buttonClicked(self):
        print 'button clicked'
        for i in range(3):
            time.sleep(1)
            print '...processing %s'%i

if __name__ == '__main__':
    app = QtGui.QApplication([])
    window = Dialog()
    window.resize(300, 50)
    window.show()
    app.exec_()

在 PyQt4 中QLinearGradient获得水平方向。 而 PySide 似乎将其处理为垂直渐变。 该代码创建了一个QLineEdit其背景颜色通过设置palette.setBrush(QPalette.Base, QBrush(QLinearGradient))。按下按钮会将进度条值提高 10%。

enter image description here

from PyQt4 import QtCore, QtGui
import time


class Dialog(QtGui.QDialog):
    value = 0.001
    def __init__(self, parent=None):
        QtGui.QDialog .__init__(self, parent)
        mainLayout = QtGui.QVBoxLayout()

        self.lineedit = QtGui.QLineEdit()
        self.setValues()
        mainLayout.addWidget(self.lineedit)
        button = QtGui.QPushButton('Calculate')
        button.clicked.connect(self.buttonClicked)
        mainLayout.addWidget(button)
        self.setLayout(mainLayout)

    def setValues(self):
        self.lineedit.setText('progress %s'%self.value)
        palette = self.lineedit.palette()
        QRectF = QtCore.QRectF(self.lineedit.rect())
        gradient = QtGui.QLinearGradient(QRectF.topLeft(), QRectF.topRight())
        gradient.setColorAt(self.value-0.001, QtGui.QColor('#f99e41'))
        gradient.setColorAt(self.value, QtGui.QColor('#ffffff'))
        gradient.setColorAt(self.value+0.001, QtGui.QColor('#ffffff'))
        palette.setBrush(QtGui.QPalette.Base, QtGui.QBrush(gradient))
        self.lineedit.setPalette(palette)

    def buttonClicked(self):
        if self.value >0.9:
            self.value = 0.001
        else:
            self.value=self.value+0.1

        self.setValues()
        time.sleep(1)

if __name__ == '__main__':
    app = QtGui.QApplication([])
    window = Dialog()
    window.resize(300, 50)
    window.show()
    app.exec_()

对于 PySide,渐变可能是水平的:

import PySide.QtCore as QtCore
import PySide.QtGui as QtGui

class Dialog(QtGui.QDialog):
    value = 1.00
    def __init__(self, parent=None):
        QtGui.QDialog .__init__(self, parent)
        mainLayout = QtGui.QVBoxLayout()

        self.lineedit = QtGui.QLineEdit()
        self.setValues()
        mainLayout.addWidget(self.lineedit)
        button = QtGui.QPushButton('Calculate')
        button.clicked.connect(self.buttonClicked)
        mainLayout.addWidget(button)
        self.setLayout(mainLayout)

    def setValues(self):
        self.lineedit.setText('progress %s'%self.value)
        palette = self.lineedit.palette()
        QRectF = QtCore.QRectF(self.lineedit.rect())
        gradient = QtGui.QLinearGradient(QRectF.topLeft(), QRectF.topRight())
        gradient.setColorAt(self.value-0.001, QtGui.QColor('#ffffff'))
        gradient.setColorAt(self.value, QtGui.QColor('#f99e41'))
        gradient.setColorAt(self.value+0.001, QtGui.QColor('#f99e41'))
        palette.setBrush(QtGui.QPalette.Base, QtGui.QBrush(gradient))
        self.lineedit.setPalette(palette)

    def buttonClicked(self):
        if self.value <0.1:
            self.value = 1.00
        else:
            self.value=self.value-0.1

        self.setValues()


if __name__ == '__main__':
    app = QtGui.QApplication([])
    window = Dialog()
    window.resize(300, 50)
window.show()
app.exec_()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将QLineEdit背景变成进度条 的相关文章

  • Tkinter 菜单删除项

    如何删除任何菜单项 例如我想删除 播放 self menubar Menu self root self root config menu self menubar self filemenu2 Menu self menubar self
  • 将 yerr/xerr 绘制为阴影区域而不是误差线

    在 matplotlib 中 如何将误差绘制为阴影区域而不是误差条 例如 而不是 忽略示例图中各点之间的平滑插值 这需要进行一些手动插值 或者只是获得更高分辨率的数据 您可以使用pyplot fill between https matpl
  • 从 pyspark.sql 中的列表创建数据框

    我完全陷入了有线的境地 现在我有一个清单li li example data map lambda x get labeled prediction w x collect print li type li 输出就像 0 0 59 0 0
  • 如何获取numpy.random.choice的索引? - Python

    是否可以修改 numpy random choice 函数以使其返回所选元素的索引 基本上 我想创建一个列表并随机选择元素而不进行替换 import numpy as np gt gt gt a 1 4 1 3 3 2 1 4 gt gt
  • 如何将 sql 数据输出到 QCalendarWidget

    我希望能够在日历小部件上突出显示 SQL 数据库中的一天 就像启动程序时突出显示当前日期一样 在我的示例中 它是红色突出显示 我想要发生的是 当用户按下突出显示的日期时 数据库中日期旁边的文本将显示在日历下方的标签上 这是我使用 QT De
  • OpenCV 跟踪器:模型未在函数 init 中初始化

    在视频的第一帧 我运行一个对象检测器 它返回对象的边界框 如下所示
  • 如何在 Python 中的函数入口、内部和退出处进行日志记录

    我希望能够使用 Python 日志记录工具在我的代码中进行简单且一致的日志记录 我能够执行以下操作 我希望所有现有 未来的模块和函数都有 输入 和 完成 日志消息 我不想添加相同的代码片段来定义日志记录参数 如下所示don t want t
  • 如何在 Django Rest 框架中编写“删除”操作的测试

    我正在为 Django Rest Framework API 编写测试 我一直在测试 删除 我对 创建 的测试工作正常 这是我的测试代码 import json from django urls import reverse from re
  • 时间序列数据预处理 - numpy strides 技巧以节省内存

    我正在预处理一个时间序列数据集 将其形状从二维 数据点 特征 更改为三维 数据点 时间窗口 特征 在这样的视角中 时间窗口 有时也称为回顾 指示作为输入变量来预测下一个时间段的先前时间步长 数据点的数量 换句话说 时间窗口是机器学习算法在对
  • 使用标签或 href 传递 Django 数据

    我有一个包含链接的表 当单击该链接进行更多操作时 我想将一些数据传递给我的函数 my html table tbody for query in queries tr td value a href internal my func que
  • 将字符串中的随机字符转换为大写

    我尝试随机附加文本字符串 这样就不只是有像这样的输出 gt gt gt david 我最终会得到类似的东西 gt gt gt DaViD gt gt gt dAviD 我现在的代码是这样的 import random import stri
  • 在 MacOS 终端上运行 ffmpeg [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我对 MacOS 相当陌生 我发现使用终端来获取信息并不容易ffmpeg和我在 Window 上一样正常运行 我有 ffmpeg 二进制文件ffmpe
  • PyInstaller“ValueError:源代码字符串不能包含空字节”

    我得到了一个ValueError source code string cannot contain null bytes执行命令时pyinstaller main py在具有和不具有管理员权限的cmd中 Traceback most re
  • 使用 selenium 和 python 来提取 javascript 生成的 HTML?萤火虫?

    这里是Python新手 我遇到的是数据收集问题 我在这个网站上 当我用 Firebug 检查我想要的元素时 它显示了包含我需要的信息的源 然而常规源代码 没有 Firebug 不会给我这个信息 这意味着我也无法通过正常的 selenium
  • 根据多个阈值将 SciPy 分层树状图切割成簇

    我想将 SciPy 的树状图切割成多个具有多个阈值的簇 我尝试过使用 fcluster 但它只能削减一个阈值 例如 这是我从另一个问题中摘取的一段代码 import pandas data pandas DataFrame total ru
  • 在 numpy 中连接维度

    我有x 1 2 3 4 5 6 7 8 9 10 11 12 shape 2 2 3 I want 1 2 3 4 5 6 7 8 9 10 11 12 shape 2 6 也就是说 我想连接中间维度的所有项目 在这种特殊情况下我可以得到这
  • 高效创建抗锯齿圆形蒙版

    我正在尝试创建抗锯齿 加权而不是布尔 圆形掩模 以制作用于卷积的圆形内核 radius 3 no of pixels to be 1 on either side of the center pixel shall be decimal a
  • 如何绘制更大的边界框和仅裁剪边界框文本 Python Opencv

    我正在使用 easyocr 来检测图像中的文本 该方法给出输出边界框 输入图像如下所示 Image 1 Image 2 使用下面的代码获得输出图像 But I want to draw a Single Bigger bounding bo
  • 如何在 scikit 中加载 CSV 数据并将其用于朴素贝叶斯分类

    尝试加载自定义数据以在 Scikit 中执行 NB 分类 需要帮助将示例数据加载到 Scikit 中 然后执行 NB 如何加载目标的分类值 使用相同的数据进行训练和测试 或使用完整的数据集进行测试 Sl No Member ID Membe
  • Jupyter Notebook:带有小部件的交互式绘图

    我正在尝试生成一个依赖于小部件的交互式绘图 我遇到的问题是 当我使用滑块更改参数时 会在前一个绘图之后完成一个新绘图 而我预计只有一个绘图会根据参数发生变化 Example from ipywidgets import interact i

随机推荐

  • 关于 Runtime.getRuntime().totalMemory() 的问题

    以下函数用于计算内存使用情况 private static long getMemoryUse putOutTheGarbage long totalMemory Runtime getRuntime totalMemory putOutT
  • 单一资源的嵌套 form_

    我有一个单一的嵌套资源 如下所示 map resources bookings member gt rate gt post do booking booking resource review end 给我这些路线 new booking
  • 什么是银行冲突? (进行Cuda/OpenCL编程)

    我一直在阅读 CUDA 和 OpenCL 的编程指南 但我无法弄清楚银行冲突是什么 他们只是深入研究如何解决问题 而不详细说明主题本身 有人能帮我理解吗 如果帮助是在 CUDA OpenCL 的背景下 或者只是计算机科学中一般的银行冲突 我
  • 在 RECYCLER VIEW 中添加页脚视图?

    我想在回收器视图的底部添加页脚布局 下面是我的适配器视图 它会膨胀页眉布局以及其他项目 感谢帮助 public class SplitMembersAdapter extends RecyclerViewAdapter
  • MySql 存储过程循环光标 - 语法错误

    语法错误在哪里 DECLARE irid INT DEFAULT 0 DECLARE tmp joinid INT DEFAULT 0 DECLARE loopjoins eof INT DEFAULT FALSE DECLARE CONT
  • Python:线程可以同时读/写同一个 TCP 套接字吗?

    我想要同一个 TCP 套接字有一个读取器线程和一个写入器线程 可以吗 在访问之前我需要锁定吗 平台是Windows 7 CPython 2 7 4 对于 Unix 内核 两个线程一个读取另一个写入文件 套接字 与两个进程执行相同操作相同 由
  • 如何使用 webview url 发送标头值?

    我开发了一个带有 webview 的 android 应用程序 我想用 url 发送标头值 如果可能的话谁帮我提供一下源代码 Map
  • Java 中的泛型,使用通配符

    我有一个关于 Java 泛型的问题 即使用通配符 我有一个像这样的 GenClass 示例类 public class GenClass
  • 使用 Typescript 和 Visual Studio 2015 运行时进行编辑?

    在 Visual Studio 2013 中使用 Typescript 时 我似乎记得我可以在浏览器窗口中运行 TypeScript 源时编辑它 然后刷新浏览器窗口并获取新的更改 现在 在 Visual Studio 2015 中 Visu
  • DBpedia SPARQL 查询返回多个重复记录

    我对 SPARQL 还很陌生 并且对它现有的多种语法标准感到困惑 我正在努力使用以下查询从 DBpedia 获取唯一数据 SELECT DISTINCT Museum name abstract thumbnail latitude lon
  • Kotlin - 当前实例的返回类型

    我正在 Kotlin 中构建一个验证库 基类是abstract并实现适用于所有类型的方法 isNotNull例如 abstract class Validator
  • 通过 QTcpSocket 发送任何结构

    在写入套接字之前如何将结构转换为 char 形式 Use 数据流 它具有处理 Qt 类的字节顺序 字节顺序 和序列化的优点 简单地将结构转换为 char 可能会导致很多问题 包括字节顺序 编译器填充等 我建议使用流
  • 修改正在运行的SKAction的速度

    我有这个代码 implementation MyScene SKAction delayAction Inside a method delayAction SKAction waitForDuration 3 0 self runActi
  • 在 Rails 中批量导入 CSV?

    我正在使用 FasterCSV 将上传的文件导入到模型中 它非常适合小文件 然而 当我尝试导入大型数据集 21 000 行 时 需要很长时间 并且实时服务器上的浏览器超时 这是我当前的工作代码 logcount 0 Attendee tra
  • 在 python 中使用自定义步骤进行循环

    我可以在 python 中制作简单的 for 循环 例如 for i in range 10 然而 我不知道如何制作更复杂的 这在 C 中非常容易 如何在 python 中实现这样的 for 循环 for w n w gt 1 w w 2
  • 对三个数字进行排序的更简单方法

    有没有更简单更好的方法来解决这个问题 因为 我使用了太多变量 我用了这么多if else声明 我使用蛮力方法做到了这一点 编写一个程序 接收三个整数作为输入并按升序输出数字 不要使用循环 数组 include
  • Web API:无法序列化内容类型的响应正文

    我正在使用 ASP NET MVC 5 Web Api 我现有的应用程序包含许多 api 最近我实现了自定义 JsonConverter 它将根据时区转换日期 public class CustomInfoConverter JsonCon
  • TypeError - python 中的客户端错误

    我用 python 创建了一个客户端 服务器代码 服务器运行良好并侦听 8000 端口 但是当我通过客户端连接到它然后尝试向服务器发送消息时 出现以下错误 Traceback most recent call last File C Use
  • 如何检索 ADO.NET SqlCommand 的结果?

    我正在使用 ASP NET 我想查找表中的行数 我知道这是 SQL 代码 select count from topics 但是如何让它显示为数字呢 我想做的就是运行该代码 如果它 0 显示一件事 但如果它大于 0 显示其他内容 这是我到目
  • 如何将QLineEdit背景变成进度条

    该代码创建一个对话框QLineEdit and a QPushButton 单击按钮时我想要QLineEdit变成一个进度条 显示按下按钮触发的过程的进度 当该过程完成时QLineEdit应该恢复到正常的 LineEdit 外观 如何实现这