Tot*_*oto 0 python string wxpython
我是一个Python菜鸟,所以我可能会在这里遗漏一些东西,但我在程序中如何处理字符串时遇到问题.当我显示它时,只显示第一个字符.
# some code
MessageBox = ctypes.windll.user32.MessageBoxA
# some other code
testString = self.statusBar1.GetStatusText(0)
# displays "azertyu"
MessageBox(None, "azertyu", 'COUCOU', 0)
# displays 'M'
MessageBox(None, testString, 'COUCOU3', 0)
# displays 'a'
MessageBox(None, testString[1:], 'COUCOU3', 0) #
#displays 'c'
MessageBox(None, testString[2:], 'COUCOU3', 0)
Run Code Online (Sandbox Code Playgroud)
完整的字符串是'Machine'(实际上比它长).Python如何认为任何字符都是结尾字符并且一次只显示一个字符?我在这里错过了一些Python基础知识吗?
PS.GetStatusText参考可在http://www.wxpython.org/docs/api/wx.StatusBar-class.html#GetStatusText获得.我用一个很长的字符串测试了GetStatusText,它似乎没有剪切文本.
MessageBoxA是MessageBox win32 API的ascii版本.您的testString可能是一个Unicode值,因此传递给MessageBoxA的值最终看起来像一个字节数组,其他每个索引都为零.换句话说,它看起来像一个字符串,只有一个字符以NULL字符结尾.我打赌如果你使用str(testString)或切换到MessageBoxW然后它将按预期工作,但你真的应该使用wx.MessageBox或wx.MessageDialog.
| 归档时间: |
|
| 查看次数: |
2097 次 |
| 最近记录: |