鱼C论坛

 找回密码
 立即注册
查看: 1303|回复: 2

[已解决]python文件选择对话框

[复制链接]
发表于 2020-8-11 11:36:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. import wx
  2. import os

  3. class picLog(wx.Frame):
  4.     def _init_ (self):
  5.         wx.Frame._init_(self,None,title= 'picLog',size=(640,480))
  6.         self.SelBtn = wx.Button(self,label='>>' ,pos=(305,5),size=(80,25))
  7.         self.SelBtn.Bind(wx.EVT_BUTTON,self.OnOpenFile)
  8.         self.OkBtn = wx.Button(self,label= 'OK',pos=(405,5),size=(80,25))
  9.         self.OkBtn.Bind(wx.EVT_BUTTON,self.Onpic)
  10.         self.FileName = wx.TextCtrl(self,pos=(5,5),size=(230,25))
  11.         self.panel = wx.Panel(self,pos=(30,30),size=(1320,960))
  12.     def OnOpenFile(self,event):
  13.         wildcard = 'All files(*.*)|*.*'
  14.         dialog = wx.FileDialog(None,'select',os.getcwd(),'',wildcard,wx.FD_OPEN) #####
  15.         #这个部分新旧版本有变化
  16.         if dialog.ShowModal() == wx.ID_OK:
  17.             self.FileName.SetValue(dialog.GetPath())
  18.             dialog.Destroy
  19.     def Onpic(self,event):
  20.         panel = wx.Panel(self,pos=(30,30),size=(1320,960))
  21.         img3 = wx.Image(self.FileName.GetValue(),wx.BITMAP_TYPE_ANY).ConvertToBitmap()
  22.         show3 = wx.StaticBitmap(self, -1, img3,pos=(20, 0),size=(1080,600))
  23.         
  24. if __name__ == '__main__':
  25.     app = wx.App()
  26.     SiteFrame = picLog(parent=None,id=-1)
  27.     SiteFrame.Show()
  28.     app.MainLoop()
复制代码

想要wxpython创建一个界面,可以打开选择文件,自己随意用鼠标点击选择。运行这个代码,出来的界面没有按钮和动态文本。请问应该怎么办
最佳答案
2020-8-11 11:55:05
__init__ 是双下划线的

  1. import wx
  2. import os


  3. class picLog(wx.Frame):
  4.     def __init__(self):
  5.         wx.Frame.__init__(self, None, title='picLog', size=(640, 480))
  6.         self.panel = wx.Panel(self)
  7.         self.SelBtn = wx.Button(self.panel, label='>>', pos=(305, 5), size=(80, 25))
  8.         self.SelBtn.Bind(wx.EVT_BUTTON, self.OnOpenFile)
  9.         self.OkBtn = wx.Button(self.panel, label='OK', pos=(405, 5), size=(80, 25))
  10.         self.OkBtn.Bind(wx.EVT_BUTTON, self.Onpic)
  11.         self.FileName = wx.TextCtrl(self.panel, pos=(5, 5), size=(230, 25))

  12.     def OnOpenFile(self, event):
  13.         wildcard = 'All files(*.*)|*.*'
  14.         dialog = wx.FileDialog(None, 'select', os.getcwd(), '', wildcard, wx.FD_OPEN)  #####
  15.         # 这个部分新旧版本有变化
  16.         if dialog.ShowModal() == wx.ID_OK:
  17.             self.FileName.SetValue(dialog.GetPath())
  18.             dialog.Destroy()

  19.     def Onpic(self, event):
  20.         panel = wx.Panel(self, pos=(30, 30), size=(1320, 960))
  21.         img3 = wx.Image(self.FileName.GetValue(), wx.BITMAP_TYPE_ANY).ConvertToBitmap()
  22.         show3 = wx.StaticBitmap(self, -1, img3, pos=(20, 0), size=(1080, 600))


  23. if __name__ == '__main__':
  24.     app = wx.App()
  25.     SiteFrame = picLog()
  26.     SiteFrame.Show()
  27.     app.MainLoop()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-8-11 11:55:05 | 显示全部楼层    本楼为最佳答案   
__init__ 是双下划线的

  1. import wx
  2. import os


  3. class picLog(wx.Frame):
  4.     def __init__(self):
  5.         wx.Frame.__init__(self, None, title='picLog', size=(640, 480))
  6.         self.panel = wx.Panel(self)
  7.         self.SelBtn = wx.Button(self.panel, label='>>', pos=(305, 5), size=(80, 25))
  8.         self.SelBtn.Bind(wx.EVT_BUTTON, self.OnOpenFile)
  9.         self.OkBtn = wx.Button(self.panel, label='OK', pos=(405, 5), size=(80, 25))
  10.         self.OkBtn.Bind(wx.EVT_BUTTON, self.Onpic)
  11.         self.FileName = wx.TextCtrl(self.panel, pos=(5, 5), size=(230, 25))

  12.     def OnOpenFile(self, event):
  13.         wildcard = 'All files(*.*)|*.*'
  14.         dialog = wx.FileDialog(None, 'select', os.getcwd(), '', wildcard, wx.FD_OPEN)  #####
  15.         # 这个部分新旧版本有变化
  16.         if dialog.ShowModal() == wx.ID_OK:
  17.             self.FileName.SetValue(dialog.GetPath())
  18.             dialog.Destroy()

  19.     def Onpic(self, event):
  20.         panel = wx.Panel(self, pos=(30, 30), size=(1320, 960))
  21.         img3 = wx.Image(self.FileName.GetValue(), wx.BITMAP_TYPE_ANY).ConvertToBitmap()
  22.         show3 = wx.StaticBitmap(self, -1, img3, pos=(20, 0), size=(1080, 600))


  23. if __name__ == '__main__':
  24.     app = wx.App()
  25.     SiteFrame = picLog()
  26.     SiteFrame.Show()
  27.     app.MainLoop()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-11 12:01:30 | 显示全部楼层
zltzlt 发表于 2020-8-11 11:55
__init__ 是双下划线的

谢谢你
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-25 11:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表