Qlineedi中的progressbar

2024-04-25 12:23:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在将一些代码从pyGObject迁移到pyQT4,并使用set\ progress\ fraction作为指示输入值的最大百分比的方法。你知道吗

我试图在pyQT4中找到一个等价物,但我失败了。 QLineEdit确实有一个paint方法,所以“绘制”LineEdit的唯一真正方法是什么?你知道吗

--编辑-- gtk等价物示例:

enter image description here

&剪掉我当前的pyGObject代码

 def on_entry_change(self,widget,*args):
      try:
          tmp = float(widget.get_text())
          tmp = (tmp- widget.min_bin)/(widget.max_bin - widget.min_bin)
          widget.set_progress_fraction(tmp)
      except:
          return

Tags: 方法代码bin绘制widgetmintmp百分比
1条回答
网友
1楼 · 发布于 2024-04-25 12:23:16

我想您应该将QLineEdit中的值连接到修改进度条的方法。这可能有助于:

from __future__ import division
import sys

from PyQt4.QtCore import (Qt, SIGNAL)
from PyQt4.QtGui import (QApplication, QDialog, QLineEdit,
    QVBoxLayout, QProgressBar, QWidget, QLabel)

class Form(QWidget):

def __init__(self, parent=None):
    super(Form, self).__init__(parent)


    self.barA = QProgressBar()
    self.maximum = 200
    self.label1 = QLabel('Maximum = 200')
    self.seqM = QLineEdit("num")


    layoutO = QVBoxLayout() #set overal layout
    layoutO.addWidget(self.label1)
    layoutO.addWidget(self.barA)
    layoutO.addWidget(self.seqM)

    self.setLayout(layoutO)


    self.connect(self.seqM, SIGNAL("returnPressed()"), self.updatebar) 
def updatebar(self):
    try:
        currval = float(self.seqM.text())
    except:
        print 'enter float or integer only'
    self.track = (currval/self.maximum)*100
    self.barA.setValue(self.track)


app = QApplication(sys.argv)
form = Form()
form.show()
app.exec_()`

相关问题 更多 >