鱼C论坛

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

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

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

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

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

x
import wx
import os

class picLog(wx.Frame):
    def _init_ (self):
        wx.Frame._init_(self,None,title= 'picLog',size=(640,480))
        self.SelBtn = wx.Button(self,label='>>' ,pos=(305,5),size=(80,25))
        self.SelBtn.Bind(wx.EVT_BUTTON,self.OnOpenFile)
        self.OkBtn = wx.Button(self,label= 'OK',pos=(405,5),size=(80,25))
        self.OkBtn.Bind(wx.EVT_BUTTON,self.Onpic)
        self.FileName = wx.TextCtrl(self,pos=(5,5),size=(230,25))
        self.panel = wx.Panel(self,pos=(30,30),size=(1320,960))
    def OnOpenFile(self,event):
        wildcard = 'All files(*.*)|*.*'
        dialog = wx.FileDialog(None,'select',os.getcwd(),'',wildcard,wx.FD_OPEN) #####
        #这个部分新旧版本有变化
        if dialog.ShowModal() == wx.ID_OK:
            self.FileName.SetValue(dialog.GetPath())
            dialog.Destroy
    def Onpic(self,event):
        panel = wx.Panel(self,pos=(30,30),size=(1320,960))
        img3 = wx.Image(self.FileName.GetValue(),wx.BITMAP_TYPE_ANY).ConvertToBitmap()
        show3 = wx.StaticBitmap(self, -1, img3,pos=(20, 0),size=(1080,600))
        
if __name__ == '__main__':
    app = wx.App()
    SiteFrame = picLog(parent=None,id=-1)
    SiteFrame.Show()
    app.MainLoop()
想要wxpython创建一个界面,可以打开选择文件,自己随意用鼠标点击选择。运行这个代码,出来的界面没有按钮和动态文本。请问应该怎么办
最佳答案
2020-8-11 11:55:05
__init__ 是双下划线的
import wx
import os


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

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

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


if __name__ == '__main__':
    app = wx.App()
    SiteFrame = picLog()
    SiteFrame.Show()
    app.MainLoop()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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


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

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

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


if __name__ == '__main__':
    app = wx.App()
    SiteFrame = picLog()
    SiteFrame.Show()
    app.MainLoop()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

谢谢你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-19 11:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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