我正在尝试使用wx.PageSetupDialog()和wx.PageSetupDialogData()类为打印机设置接口。执行 SetPrintData()方法导致分段错误(核心转储)错误。
问题似乎出在wxPython界面中,但我怀疑代码中的某些内容是负责任的。我很困惑。
In Pc.py:
prntData = wx.PrintData ()
In the problem Frame.py file:
import Pc as pc
...
def OnPrint (self, evt):
print ('OnPrint ()') #x
print (pc.prntData) #x
print (pc.prntData.GetPaperId (),
pc.prntData.GetOrientation (),
pc.prntData.GetPrinterName (), '\n') #x
data = wx.PageSetupDialogData ()
data.SetPrintData (pc.prntData) # <-- Segmentation fault
dlg = wx.PageSetupDialog (self, data)
if dlg.ShowModal () == wx.ID_OK:
data = dlg.GetPageSetupData ().GetPrintData ()
pc.prntData.SetPaperId (data.GetPaperId ())
pc.prntData.SetOrientation (data.GetOrientation ())
pc.prntData.SetPrinterName (data.GetPrinterName ())
dlg.Destroy()
如果标记为细分错误的行被注释掉,则不会发生该错误。
屏幕输出为:
OnPrint() 3 2 HP-Officejet-7300系列
分段错误(核心已转储)