我是一个Python noob,所以我可能会在这里丢失一些东西,但是我的程序中处理字符串的方式有问题。当我显示它时,只显示第一个字符。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)
完整的字符串是'机器'(它实际上比这更长)。 Python如何认为任何字符都是结尾字符,并且一次只显示一个字符?我在这里错过了一些Python基础知识吗?
PS。 GetStatusText参考可在http://www.wxpython.org/docs/api/wx.StatusBar-class.html#GetStatusText处获得。我测试了一个非常长的字符串GetStatusText,它似乎不会剪切文本。
看起来像MessageBox的问题,而不是Python如何处理字符串。 ('logging.debug()'告诉你这个字符串是什么?) – geoffspear
'type(testString)'的结果是什么?也许你会得到一个字符列表而不是实际的字符串对象?在这种情况下的修复将是'testString =“”.join(testString)'。 – filmor
我不认为你正在调用'MessageBox'。浏览文档签名是'int MessageBox(消息,标题,样式等等)'所以我认为你传递了不正确的参数。也许你正在用'MessageDialog'混合东西? – Bakuriu