簡體   English   中英

PyQt4:QSpinBox字符串

[英]PyQt4: QSpinBox strings

有沒有一種簡單的方法可以在PyQt4中創建一個旋轉框,其變化值是字符串? 我想創建一個在“低”,“中”和“高”之間變化的旋轉框。 我環顧四周,找不到看起來不太復雜的東西。 在Tkinter中,它看起來很簡單:

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

我在文檔中注意到它說“ 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]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM