Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在UNIX中工作但不在windows中工作的代码_Python_Wxpython - Fatal编程技术网

Python 在UNIX中工作但不在windows中工作的代码

Python 在UNIX中工作但不在windows中工作的代码,python,wxpython,Python,Wxpython,我用wxpython编写了一小段代码,其中拆分器窗口用于拆分对话框,一个面板具有自定义树ctrl,另一个面板具有静态框。 这段代码在Fedora和ubuntu中运行良好,但在Windows中,对话框显示为空 主要代码: wx.Dialog.\uuuuu初始化(self,None,6,'Filters',size=(500600)) self.splitter=wx.SplitterWindow(self,-1) leftPanel=wx.Panel(自拆分器,-1) leftBox=wx.Box

我用wxpython编写了一小段代码,其中拆分器窗口用于拆分对话框,一个面板具有自定义树ctrl,另一个面板具有静态框。 这段代码在Fedora和ubuntu中运行良好,但在Windows中,对话框显示为空

主要代码:

wx.Dialog.\uuuuu初始化(self,None,6,'Filters',size=(500600))
self.splitter=wx.SplitterWindow(self,-1)
leftPanel=wx.Panel(自拆分器,-1)
leftBox=wx.BoxSizer(wx.VERTICAL)
self._tree=TreeFilter(左面板,1)
添加(self.\u树,-1,wx.GROW)
self.\u tree.Bind(CT.EVT\u tree\u ITEM\u CHECKED,self.CHECKED)
leftPanel.SetSizer(leftBox)
rightPanel=wx.Panel(自拆分器,-1)
rightBox=wx.BoxSizer(wx.VERTICAL)
self.display=wx.StaticText(右面板,-1',样式=wx.ALIGN_LEFT)
添加(self.display,-1,wx.GROW)
btnsizer=wx.StdDialogButtonSizer()
btn=wx.按钮(右面板,wx.ID_OK)
btn.SetDefault()
添加按钮(btn)
btn=wx.按钮(右面板,wx.ID\U取消)
添加按钮(btn)
实现
右框。添加(btnsizer,0,wx。对齐|中心|垂直| wx.ALL,5)
rightPanel.SetSizer(右框)
self.splitter.splitvertical(左面板、右面板)
自我中心()
其中TreeFilter是一个自定义树ctrl。
请帮我解决这个问题

问题是您没有将拆分器本身放入设置为展开的大小调整器中。在我的屏幕上,你可以看到一个小盒子蜷缩在左角,所以我知道类似的事情正在发生

下面是一个适合我的例子:

import wx

########################################################################
class MyTreeCtrl(wx.TreeCtrl):

    #----------------------------------------------------------------------
    def __init__(self, parent, id):
        wx.TreeCtrl.__init__(self, parent, id)


########################################################################
class TestDlg(wx.Dialog):
    """"""

    #----------------------------------------------------------------------
    def __init__(self):
        """Constructor"""

        wx.Dialog.__init__(self, None, 6, 'Filters',size = (500,600) )
        mainSizer = wx.BoxSizer(wx.VERTICAL)

        self.splitter = wx.SplitterWindow(self, -1)
        leftPanel = wx.Panel(self.splitter, -1)
        leftBox = wx.BoxSizer(wx.VERTICAL)
        self.tree = MyTreeCtrl(leftPanel, 1)

        self.root = self.tree.AddRoot("The Root Item")
        self.tree.SetPyData(self.root, None)
        for x in range(15):
            child = self.tree.AppendItem(self.root, "Item %d" % x)
            self.tree.SetPyData(child, None)
        self.tree.Expand(self.root)

        leftBox.Add(self.tree, -1, wx.GROW)
        #self.__tree.Bind(CT.EVT_TREE_ITEM_CHECKED, self.checked)
        leftPanel.SetSizer(leftBox)

        rightPanel = wx.Panel(self.splitter, -1)
        rightBox = wx.BoxSizer(wx.VERTICAL)
        self.display = wx.StaticText(rightPanel, -1, '', style=wx.ALIGN_LEFT)
        rightBox.Add(self.display, -1, wx.GROW)

        btnsizer = wx.StdDialogButtonSizer()
        btn = wx.Button(rightPanel, wx.ID_OK)
        btn.SetDefault()
        btnsizer.AddButton(btn)

        btn = wx.Button(rightPanel, wx.ID_CANCEL)
        btnsizer.AddButton(btn)
        btnsizer.Realize()
        rightBox.Add(btnsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5)
        rightPanel.SetSizer(rightBox)

        self.splitter.SplitVertically(leftPanel, rightPanel)
        self.Centre()
        mainSizer.Add(self.splitter, 1, wx.EXPAND)
        self.SetSizer(mainSizer)

#----------------------------------------------------------------------
if __name__ == "__main__":
    app = wx.App(False)
    dlg = TestDlg()
    dlg.Show()
    dlg.Destroy()
    app.MainLoop()

摆脱自定义树控件时是否显示任何内容?不显示任何内容,将显示完全为空的对话框。