wxpython中的打印对话框错误

时间:2018-08-07 07:37:37

标签: wxpython

这是我的代码:

def Print(self, e):
        data = wx.PrintDialogData()
        data.EnableSelection(True)
        data.EnablePrintToFile(True)
        data.EnablePageNumbers(True)
        data.SetMinPage(1)
        data.SetMaxPage(5)
        data.SetAllPages(True)
        dlg = wx.PrintDialog(self, data)
        if dlg.ShowModal() == wx.ID_OK:
            data = dlg.GetPrintDialogData()
            self.log.write('GetAllPages: %d\n' % data.GetAllPages())
        dlg.Destroy()

当我尝试打开“打印”菜单选项时,出现此错误:

data.SetAllPages(True)
AttributeError: 'PrintDialogData' object has no attribute 'SetAllPages'

1 个答案:

答案 0 :(得分:0)

这是因为PrintDialogData没有SetAllPages属性。
我怀疑您误解了data.GetAllPages()函数的使用, 如果用户要求打印所有页面,则返回True,之后调用对话框。
即,如果用户选择“所有页面”选项,则在PrintDialog函数中将其设置为True,否则将其设置为False。

def Print(self, e):
        data = wx.PrintDialogData()
        data.EnableSelection(True)
        data.EnablePrintToFile(True)
        data.EnablePageNumbers(True)
        data.SetMinPage(1)
        data.SetMaxPage(5)
        dlg = wx.PrintDialog(self,data)
        if dlg.ShowModal() == wx.ID_OK:
            data = dlg.GetPrintDialogData()
            print (data.GetAllPages())
        dlg.Destroy()

请注意,在Get

之前,您应该{@ {1}}来自对话框的所有返回值