python - PyQt4:QSpinBox 字符串

标签 python pyqt4 qspinbox

是否有一种简单的方法可以在 PyQt4 中创建一个可变值是字符串的旋转框?我想创建一个在“低”、“中”和“高”之间变化的旋转框。我环顾四周,找不到任何看起来不太复杂的东西。在 Tkinter 中,它可能看起来很简单:

self.my_wordy_spinbox = Spinbox(parent, 
                                values = ['Medium', 'High', 'Low'],
                                textvariable = self.object_strength)

我在 documentation 中注意到它说“QSpinBox 旨在处理整数和离散值集(例如月份名称)”,我认为这可能会导致字符串,但我找不到更多相关内容。我很想使用组合框,但我觉得旋转框更合适。

最佳答案

我真的不明白这会以任何方式改进组合框,特别是如果有多个字符串。

但是,如果你真的想要它,你只需要子类化 QSpinBox 并重新实现 textFromValuevalueFromText :

class StringBox(QtGui.QSpinBox):
    def __init__(self, strings, parent=None):
        super(StringBox, self).__init__(parent)
        self.setStrings(strings)

    def strings(self):
        return self._strings

    def setStrings(self, strings):
        self._strings = tuple(strings)
        self._values = dict(zip(strings, range(len(strings))))
        self.setRange(0, len(strings) - 1)

    def textFromValue(self, value):
        return self._strings[value]

    def valueFromText(self, text):
        return self._values[text]

关于python - PyQt4:QSpinBox 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27974268/

相关文章:

python - PyQt 多行文本输入框

c++ - (Qt C++) 将 int 值从对话框发送到 MainWindow?

python - 如何遍历我的目录以附加具有 NaN 值的文件?

python - 如何使用从经过训练的 keras 模型中提取的 tensorflow 模型

python - 是否可以将一个 QGraphicsPixmapItem 附加到另一个 QGraphicsPixmapItem?

python - 如果未使用 functools.partial,则不会显示 QMainWindow

css - QSpinBox 箭头放置在行编辑之外(css)

python - 带有二进制数的 QSpinbox

python - 通过从固定的常量日期时间偏移以秒为单位的间隔来获取新的日期时间

python - 从 PIL 图像转换后,Numpy 数组不显示灰度图像的颜色尺寸