Ниже приведен очень простой код wxPython, создающий ноутбук, внутри которого находятся несколько панелей, содержащих объекты TreeCtrl.Избегайте щелчка, чтобы выйти из wxPython TreeCtrl в ноутбуке
С его помощью я получаю поведение, я хотел бы избежать:
Когда я нажимаю на дереве, то я не могу перейти непосредственно на другую страницу ноутбука без нажатия первой вне дерева. Это означает, что для изменения страницы ноутбука требуется два щелчка: один для выхода за пределы дерева, другой - для переключения страницы.
Я хотел был бы иметь возможность сделать это одним щелчком мыши.
Код:
import wx
class TestFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, wx.ID_ANY)
# Create the notebook
notebook = wx.Notebook(self)
# Put panels in the notebook
notebook.AddPage(TestPanel(notebook), "Page 1")
notebook.AddPage(TestPanel(notebook), "Page 2")
# Display the window
self.Show(True)
class TestPanel(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
# Create the sizer
sizer = wx.BoxSizer(wx.VERTICAL)
self.SetSizer(sizer)
# Create the tree
tree = wx.TreeCtrl(self)
sizer.Add(tree, 1, wx.EXPAND)
# Create nodes in the tree
root = tree.AddRoot("root")
tree.AppendItem(root, "item 1")
tree.AppendItem(root, "item 2")
tree.AppendItem(root, "item 3")
# Expand the root node
tree.Expand(root)
if __name__ == "__main__":
# Create an application without redirection of stdout/stderr to a window
application = wx.App(False)
# Open a main window
frame = TestFrame()
# Launch the application
application.MainLoop()
Я попробовал демонстрацию с wxpython, в демонстрации древовидной книги, у нее также есть эта проблема. – liunx
Просто заметил, что это не происходит при выборе узлов дерева с помощью правой кнопки ... Если бы только я мог связать поведение правой кнопки мыши с левой кнопкой, это может сделать трюк ... – taalf