:
プログレスバーがにQLineEditの下部にある細い線かもしれませんPyQt4 QLinearGradient
は水平方向になります。 PySideでは、それは垂直グラデーションのように扱われるようです。 palette.setBrush(QPalette.Base, QBrush(QLinearGradient))
で背景色を設定してQLineEdit
を作成します。ボタンを押すとプログレスバーの値が10%上がります。勾配が水平であるかもしれないPySideについては
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_()
:
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_()
私はのQLineEditのsetPaletteメソッドを使用するだろうと思います。同様に、QLineEditの背景を設定する方法と同様です。たとえば背景を設定する方法を見てみましょう。画像。 –
もちろん、良いアイデアです!ありがとう! – alphanumeric