czjuntt 2021-05-10 19:29 采纳率: 100%
浏览 82
已采纳

wxpython和python-docx不兼容吗?

import wx 
from docx import Document 
	
def cs(self):
	doc = Document()
	bbTi=doc.add_heading('', 1)
	wjBj=bbTi.add_run('测试内容')
	print('写文档前')
	doc.save('1.docx')
	print('写文档后')

app = wx.App() 
frame=wx.Frame(None,title='测试')
panel=wx.Panel(frame,-1)
bt=wx.Button(panel,-1,label='测试')

bt.Bind(wx.EVT_BUTTON, cs)


frame.Show()
app.MainLoop()

以上是测试代码,python版本是3.7.1,运行后在save()行无任何提示终止了,有没有解决办法?

  • 写回答

5条回答 默认 最新

  • CSDN专家-HGJ 2021-05-10 20:46
    关注

    代码没有问题,运行结果正常,测试环境python3.7.6,docx0.8.10,wx4.1.0

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 天元浪子 Python领域优质创作者 2021-05-11 08:38
    关注

    虽然题主的代码在我这里可以正常运行并成功保存了文件,却是阴差阳错的结果:通常事件函数,比如题主的cs函数,需要封装成wx.Frame的实例方法,这样,事件函数既可以访问窗口实例的成员,也可以接收事件对象。

    另外,题主的代码无法运行,可能是题主已经打开了1.docx这个文件。如果不是,建议题主注释掉11行之后的代码,增加一行cs(None),运行一下,就可以判断问题是不是和wx有关系了。

    最后,帮题主修改了一下代码,请参考。

    import wx 
    from docx import Document 
    
    class mainFrame(wx.Frame):
        '''程序主窗口类,继承自wx.Frame'''
        
        def __init__(self):
            '''构造函数'''
            
            wx.Frame.__init__(self, None, -1, '基本框架', style=wx.DEFAULT_FRAME_STYLE)
            self.SetSize((800, 600)) # 设置窗口大小
            self.Center() # 窗口居中
            
            # 以下可以添加各类控件、
            p = wx.Panel(self, -1)
            btn = wx.Button(p, -1, label='测试', pos=(100,50), size=(60,-1))
            
            btn.Bind(wx.EVT_BUTTON, self.cs)
        
        def cs(self, evt):
            """响应点击按钮事件"""
            
            doc = Document()
            bbTi = doc.add_heading('', 1)
            wjBj = bbTi.add_run('测试内容')
            print('写文档前')
            doc.save('1.docx')
            print('写文档后')
    
    class mainApp(wx.App):
        def OnInit(self):
            self.Frame = mainFrame()
            self.Frame.Show()
            return True
    
    if __name__ == "__main__":
        app = mainApp()
        app.MainLoop()
    评论
  • CSDN专家-黄老师 2021-05-10 19:49
    关注

    bt.Bind(wx.EVT_BUTTON, cs)你这个还没调用函数,肯定报错了

    评论
  • 有问必答小助手 2021-05-11 11:01
    关注

    您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

    如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

    ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

    评论
  • 有问必答小助手 2021-05-11 16:28
    关注

    非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

    速戳参与调研>>>https://t.csdnimg.cn/Kf0y

    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 相同型号电脑与配置,发现主板有一台貌似缺少了好多元器件似的,会影响稳定性和使用寿命吗?
  • ¥15 要求编写稀疏矩阵A的转置矩阵的算法
  • ¥15 编写满足以下要求的停车场管理程序,设停车场只有一个可停放n辆车的狭窄通道且只有一个大门可供车辆进出。
  • ¥15 C语言:数据子序列基础版
  • ¥20 powerbulider 导入excel文件,显示不完整
  • ¥15 用keil调试程序保证结果进行led相关闪烁
  • ¥15 paddle训练自己的数据loss降不下去
  • ¥20 用matlab的pdetool解决以下三个问题
  • ¥15 单个福来轮的平衡与侧向滑动是如何做到的?
  • ¥15 嵌入式Linux固件,能直接告诉我crc32校验的区域在哪不,内核的校验我已经找到了,uboot没有