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 回答