1

ありがとう、私はスペイン語を話します、しばらくお待ちください:

QTableWidgetをスマートに並べ替える必要がありますが、これを行う方法がわかりません。テーブル内のデータは次のとおりです。

例:

Item1: “12 GB”
Item1: “34 KB”
Item1: “45 MB”
Item1: “12 bytes”
Item1: “12 MB”
Item1: “12.3 KB”
Item1: “23.4 KB”
4

1 に答える 1

0

人間が読み取れる値ではなく、実際にバイト単位で量を取得できるように、入力を変更することをお勧めします。

その後も、別の方法で表示できます。それがオプションではない場合は、次のような方法でデコードしてみてください。

def convert(value):                                                                                                                                                               
    number, multiplier = value.split()                                                                                                                                            
    if multiplier == 'bytes':                                                                                                                                                     
        multiplier = 1                                                                                                                                                            
    elif multiplier == 'KB':                                                                                                                                                      
        multiplier = 2**10                                                                                                                                                        
    elif multiplier == 'MB':                                                                                                                                                      
        multiplier = 2**20                                                                                                                                                        
    elif multiplier == 'GB':                                                                                                                                                      
        multiplier = 2**30                                                                                                                                                        
    else:                                                                                                                                                                         
        raise RuntimeError('Unknown unit %r in %r' % (multiplier, value))                                                                                                         

    return float(number) * multiplier                                                                                                                                             
于 2013-02-25T16:01:38.293 に答える