单击按钮时,面板二字段中的数据应复制到面板一字段吗?

发布于 2024-12-21 21:55:42 字数 4051 浏览 2 评论 0原文

我是 python 语言的初学者,我正在尝试使用 wxpython 为我的程序制作一个简单的 gui。我的 gui 由一个框架和两个选项卡(使用 wxPanel)组成(选项卡 1 和选项卡 2)。我在选项卡 1 和选项卡 2 上放置了 txtctrl 小部件。在选项卡 1 上,我放置了一个按钮,用于获取所有 txtctrl 值并将它们分配给相应的变量。我的问题是,我可以从放置在选项卡 1 面板中的 txtctrls 获取值并将它们分配给选项卡 1 中的变量,但我无法从选项卡 2 面板中的 txtctrls 获取值并在选项卡 1 面板中使用它们(我想从选项卡 2 面板获取值并将它们分配给选项卡 1 面板中的变量。)。您能帮我解决这个问题并运行我的代码吗?

我搜索了很多网站,阅读了有关框架或类之间数据传输的示例,并尝试应用它们,但仍然无法使其工作。

这是我的图形用户界面代码;

from wxPython.wx import *
import os

class PageOne(wxPanel):
    def __init__(self, parent):
        wxPanel.__init__(self, parent)
        self.SetBackgroundColour("gray")

        self.tc1=wxTextCtrl(self, -1, '',  (110, 15), (120, -1))
        self.tc2=wxTextCtrl(self, -1, '',  (110, 15), (120, -1))
        self.tc3=wxTextCtrl(self, -1, '',  (110, 15), (120, -1))
        self.st1=wxStaticText(self, -1, "input", pos=(10, 12))
        self.st2=wxStaticText(self, -1, "X:", pos=(10, 12))
        self.st3=wxStaticText(self, -1, "Y:", pos=(10, 12))
        self.st4=wxStaticText(self, -1, "Z:", pos=(10, 12))
        #flexgrid 
        self.fgs = wxFlexGridSizer(1, 7, 9, 10) 
        self.fgs.AddMany([(self.st1, 1, wxEXPAND),(self.st2, 1, \
        wxEXPAND),(self.tc1, 1,wxEXPAND),(self.st3, 1, wxEXPAND),\
        (self.tc2, 1, wxEXPAND),(self.st4, 1, wxEXPAND),(self.tc3, 1,\
        wxEXPAND)])
        # statik text 
        self.hsizer1 = wxBoxSizer(wxHORIZONTAL)
        self.hsizer2 = wxBoxSizer(wxHORIZONTAL)
        self.vsizerb = wxBoxSizer(wxVERTICAL)

        self.hsizer1.Add(self.fgs, 1, wxEXPAND |wxALIGN_CENTER| wxALL,1)

        self.but1=wxButton(self, 1, 'Calculate', (10, 10))
        self.but1.Bind(EVT_BUTTON, self.Create_OnClick)
        self.hsizer2.Add(self.but1, 1, wxALIGN_CENTER)

        self.vsizerb.Add(self.hsizer1, 1.8, wxEXPAND | wxALL, 10)
        self.vsizerb.Add(self.hsizer2, 0.2, wxEXPAND | wxALL, 10)
        self.SetSizer(self.vsizerb)

        self.PTWO=PageTwo(self)
        self.PTWO.Show()

    def Create_OnClick(self, event):
        text1=self.tc1.GetValue()
        text2=self.tc2.GetValue()
        text3=self.tc3.GetValue()
        #here I want to get pt2_1 value from tab2 panel and assign it
        #to text4 varibale.
        #on the gui, if you fill all txtcrtl boxes and press calculate 
        #button, it gives values of text3 and text4 on cmd.
        #I can get text3 value but cannot get text4 value.It gives null?
        text4=self.PTWO.pt2_1.GetValue()
        print "text_fromtab2:",text4,"text_fromtab1:",text3
        yer=os.getcwd()

class PageTwo(wxPanel):
    def __init__(self, parent):
        wxPanel.__init__(self, parent)
        self.SetBackgroundColour("gray")

        self.hsizerb = wxBoxSizer(wxHORIZONTAL)
        self.st5=wxStaticText(self, -1, "Input 1 (mm)", pos=(10, 12))
        # I want to be able to get these values from PageOne 
        self.pt2_1=wxTextCtrl(self, -1, '',  (110, 15), (120, -1))

        self.fgs_pt2 = wxFlexGridSizer(1, 2, 10, 10)   
        self.fgs_pt2.AddMany([(self.st5, 1, wxEXPAND),(self.pt2_1, 1,\
        wxEXPAND)])
        self.hsizerb.Add(self.fgs_pt2, 1, wxEXPAND |wxALIGN_CENTER| \
        wxALL, 10)
        self.SetSizer(self.hsizerb)

class MainFrame(wxFrame):
    def __init__(self, parent, fid, title):
        wxFrame.__init__(self, parent, fid, title, \
            pos = (200, 50), \
            size = (500, 200), \
            style = wxDEFAULT_FRAME_STYLE \
                |wxNO_FULL_REPAINT_ON_RESIZE)

        panel1 = wxPanel(self, -1)
        panel1.SetBackgroundColour("blue")

        nb = wxNotebook(panel1)
        page1 = PageOne(nb)
        page2 = PageTwo(nb)

        nb.AddPage(page1, "Tab 1")
        nb.AddPage(page2, "Tab 2")

        sizer = wxBoxSizer(wxVERTICAL)
        sizer.Add(nb, 1, wxALL|wxALIGN_CENTER|wxEXPAND, 1 )
        panel1.SetSizer(sizer)
        panel1.SetAutoLayout(True)
        self.Show(True)

if __name__ == "__main__":
        app = wxPySimpleApp()
        frame = MainFrame(None, wxID_ANY, "MY PROGRAM")
        app.MainLoop()

I am a beginner in python language and I am trying to make a simple gui for my program using wxpython. My gui consists of a frame and two tabs (using wxPanel) on it (tab 1 and tab 2). I placed txtctrl widgets on both tab 1 and tab 2. On tab 1 , I placed a button which gets all txtctrl values and assigns them to corresponding variables. My problem is that, I can get the values from txtctrls which are placed in tab 1 panel and assign them to variables in tab 1, but I can not get values from txtctrls which are in tab 2 panel and use them in tab 1 panel (I want to get values from tab 2 panel and assign them to variables in tab 1 panel.). Could you please help me to solve this problem and run my code.

I searched many sites, read examples on data transfer between frames or classes, and tried to apply them, however still I couldn' t make it work.

here is my gui code;

from wxPython.wx import *
import os

class PageOne(wxPanel):
    def __init__(self, parent):
        wxPanel.__init__(self, parent)
        self.SetBackgroundColour("gray")

        self.tc1=wxTextCtrl(self, -1, '',  (110, 15), (120, -1))
        self.tc2=wxTextCtrl(self, -1, '',  (110, 15), (120, -1))
        self.tc3=wxTextCtrl(self, -1, '',  (110, 15), (120, -1))
        self.st1=wxStaticText(self, -1, "input", pos=(10, 12))
        self.st2=wxStaticText(self, -1, "X:", pos=(10, 12))
        self.st3=wxStaticText(self, -1, "Y:", pos=(10, 12))
        self.st4=wxStaticText(self, -1, "Z:", pos=(10, 12))
        #flexgrid 
        self.fgs = wxFlexGridSizer(1, 7, 9, 10) 
        self.fgs.AddMany([(self.st1, 1, wxEXPAND),(self.st2, 1, \
        wxEXPAND),(self.tc1, 1,wxEXPAND),(self.st3, 1, wxEXPAND),\
        (self.tc2, 1, wxEXPAND),(self.st4, 1, wxEXPAND),(self.tc3, 1,\
        wxEXPAND)])
        # statik text 
        self.hsizer1 = wxBoxSizer(wxHORIZONTAL)
        self.hsizer2 = wxBoxSizer(wxHORIZONTAL)
        self.vsizerb = wxBoxSizer(wxVERTICAL)

        self.hsizer1.Add(self.fgs, 1, wxEXPAND |wxALIGN_CENTER| wxALL,1)

        self.but1=wxButton(self, 1, 'Calculate', (10, 10))
        self.but1.Bind(EVT_BUTTON, self.Create_OnClick)
        self.hsizer2.Add(self.but1, 1, wxALIGN_CENTER)

        self.vsizerb.Add(self.hsizer1, 1.8, wxEXPAND | wxALL, 10)
        self.vsizerb.Add(self.hsizer2, 0.2, wxEXPAND | wxALL, 10)
        self.SetSizer(self.vsizerb)

        self.PTWO=PageTwo(self)
        self.PTWO.Show()

    def Create_OnClick(self, event):
        text1=self.tc1.GetValue()
        text2=self.tc2.GetValue()
        text3=self.tc3.GetValue()
        #here I want to get pt2_1 value from tab2 panel and assign it
        #to text4 varibale.
        #on the gui, if you fill all txtcrtl boxes and press calculate 
        #button, it gives values of text3 and text4 on cmd.
        #I can get text3 value but cannot get text4 value.It gives null?
        text4=self.PTWO.pt2_1.GetValue()
        print "text_fromtab2:",text4,"text_fromtab1:",text3
        yer=os.getcwd()

class PageTwo(wxPanel):
    def __init__(self, parent):
        wxPanel.__init__(self, parent)
        self.SetBackgroundColour("gray")

        self.hsizerb = wxBoxSizer(wxHORIZONTAL)
        self.st5=wxStaticText(self, -1, "Input 1 (mm)", pos=(10, 12))
        # I want to be able to get these values from PageOne 
        self.pt2_1=wxTextCtrl(self, -1, '',  (110, 15), (120, -1))

        self.fgs_pt2 = wxFlexGridSizer(1, 2, 10, 10)   
        self.fgs_pt2.AddMany([(self.st5, 1, wxEXPAND),(self.pt2_1, 1,\
        wxEXPAND)])
        self.hsizerb.Add(self.fgs_pt2, 1, wxEXPAND |wxALIGN_CENTER| \
        wxALL, 10)
        self.SetSizer(self.hsizerb)

class MainFrame(wxFrame):
    def __init__(self, parent, fid, title):
        wxFrame.__init__(self, parent, fid, title, \
            pos = (200, 50), \
            size = (500, 200), \
            style = wxDEFAULT_FRAME_STYLE \
                |wxNO_FULL_REPAINT_ON_RESIZE)

        panel1 = wxPanel(self, -1)
        panel1.SetBackgroundColour("blue")

        nb = wxNotebook(panel1)
        page1 = PageOne(nb)
        page2 = PageTwo(nb)

        nb.AddPage(page1, "Tab 1")
        nb.AddPage(page2, "Tab 2")

        sizer = wxBoxSizer(wxVERTICAL)
        sizer.Add(nb, 1, wxALL|wxALIGN_CENTER|wxEXPAND, 1 )
        panel1.SetSizer(sizer)
        panel1.SetAutoLayout(True)
        self.Show(True)

if __name__ == "__main__":
        app = wxPySimpleApp()
        frame = MainFrame(None, wxID_ANY, "MY PROGRAM")
        app.MainLoop()

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

羁〃客ぐ 2024-12-28 21:55:42

您正在创建 PageTwo 两次,当您已经在 MainFrame 中创建它时

nb = wxNotebook(panel1)
page1 = PageOne(nb)
page2 = PageTwo(nb)

nb.AddPage(page1, "Tab 1")
nb.AddPage(page2, "Tab 2")

,您不需要在 PageOne 中重新创建它,因此删除它,

self.PTWO=PageTwo(self)
self.PTWO.Show()

而是将 PageTwo 传递给 PageOne

class PageOne(wxPanel):
    def __init__(self, parent, page2):
        wxPanel.__init__(self, parent)
        self.PTWO=page2

,例如在 MainFrame 中

nb = wxNotebook(panel1)
page2 = PageTwo(nb)
page1 = PageOne(nb, page2)

完成这些更改后,您应该能够访问值正确地来自第2页,但这意味着您需要更多地考虑您要做什么?

  • 更好的方法是让页面将值保存到某些模型/对象,并且其他页面可以访问该数据而不是直接访问 UI 元素,因为无论如何您可能需要在处理之前显示错误并清理数据,您可以在 可以

  • 使用更好的变量名称而不是text1 使用 self.textX 或 self.X 等

  • 你应该将计算函数分离到第三类,或者可能是 Mainframe、page1 和page2应该只收集数据

You are creating PageTwo twice, when you have already created it in MainFrame

nb = wxNotebook(panel1)
page1 = PageOne(nb)
page2 = PageTwo(nb)

nb.AddPage(page1, "Tab 1")
nb.AddPage(page2, "Tab 2")

you don't need to recreate it in PageOne, so remove this

self.PTWO=PageTwo(self)
self.PTWO.Show()

Instead pass PageTwo to PageOne e.g.

class PageOne(wxPanel):
    def __init__(self, parent, page2):
        wxPanel.__init__(self, parent)
        self.PTWO=page2

and in MainFrame

nb = wxNotebook(panel1)
page2 = PageTwo(nb)
page1 = PageOne(nb, page2)

Once you have done these changes you should be able to access values from page2 correctly, but that said you need to think more about what are you trying to do?

  • Better way would be to let pages save values to some model/object and other pages can access that data instead of directly accessing UI elements, because you may need to show error and clean data before processing anyway, you can do that on tab change

  • Have better variable names instead of text1 use self.textX or self.X etc

  • You should separate out calculation function to a third class or may be Mainframe, page1 and page2 should only collect data

美羊羊 2024-12-28 21:55:42

你从哪里得到像这样导入 wxPython 的想法?我很惊讶它竟然有效。你应该这样做:

import wx

你这样做的方式来自 wxPython 2.6 或之前的版本,它已经有 5 年多的历史了。您确实也不应该像这样从另一个屏幕提取信息。您可以像提到的其他人一样作为解决方法(即将第 2 页传递到第 1 页),或者您可以这样做:

import wx
import os

class PageOne(wx.Panel):
    def __init__(self, parent):
        wx.Panel.__init__(self, parent)
        self.SetBackgroundColour("gray")

        self.tc1=wx.TextCtrl(self, -1, '',  (110, 15), (120, -1))
        self.tc2=wx.TextCtrl(self, -1, '',  (110, 15), (120, -1))
        self.tc3=wx.TextCtrl(self, -1, '',  (110, 15), (120, -1))
        self.st1=wx.StaticText(self, -1, "input", pos=(10, 12))
        self.st2=wx.StaticText(self, -1, "X:", pos=(10, 12))
        self.st3=wx.StaticText(self, -1, "Y:", pos=(10, 12))
        self.st4=wx.StaticText(self, -1, "Z:", pos=(10, 12))
        #flexgrid 
        self.fgs = wx.FlexGridSizer(1, 7, 9, 10) 
        self.fgs.AddMany([(self.st1, 1, wx.EXPAND),
                          (self.st2, 1, wx.EXPAND),
                          (self.tc1, 1,wx.EXPAND),
                          (self.st3, 1, wx.EXPAND),
                          (self.tc2, 1, wx.EXPAND),
                          (self.st4, 1, wx.EXPAND),
                          (self.tc3, 1, wx.EXPAND)])
        # statik text 
        self.hsizer1 = wx.BoxSizer(wx.HORIZONTAL)
        self.hsizer2 = wx.BoxSizer(wx.HORIZONTAL)
        self.vsizerb = wx.BoxSizer(wx.VERTICAL)

        self.hsizer1.Add(self.fgs, 1, wx.EXPAND |wx.ALIGN_CENTER| wx.ALL,1)

        self.but1=wx.Button(self, 1, 'Calculate', (10, 10))
        self.but1.Bind(wx.EVT_BUTTON, self.Create_OnClick)
        self.hsizer2.Add(self.but1, 1, wx.ALIGN_CENTER)

        self.vsizerb.Add(self.hsizer1, 1.8, wx.EXPAND | wx.ALL, 10)
        self.vsizerb.Add(self.hsizer2, 0.2, wx.EXPAND | wx.ALL, 10)
        self.SetSizer(self.vsizerb)

    def Create_OnClick(self, event):
        text1=self.tc1.GetValue()
        text2=self.tc2.GetValue()
        text3=self.tc3.GetValue()
        #here I want to get pt2_1 value from tab2 panel and assign it
        #to text4 varibale.
        #on the gui, if you fill all txtcrtl boxes and press calculate 
        #button, it gives values of text3 and text4 on cmd.
        #I can get text3 value but cannot get text4 value.It gives null?
        notebook = self.GetParent()
        pageTwo = notebook.page2
        text4=pageTwo.pt2_1.GetValue()
        print "text_fromtab2:",text4,"text_fromtab1:",text3
        yer=os.getcwd()

class PageTwo(wx.Panel):
    def __init__(self, parent):
        wx.Panel.__init__(self, parent)
        self.SetBackgroundColour("gray")

        self.hsizerb = wx.BoxSizer(wx.HORIZONTAL)
        self.st5=wx.StaticText(self, -1, "Input 1 (mm)", pos=(10, 12))
        # I want to be able to get these values from PageOne 
        self.pt2_1=wx.TextCtrl(self, -1, '',  (110, 15), (120, -1))

        self.fgs_pt2 = wx.FlexGridSizer(1, 2, 10, 10)   
        self.fgs_pt2.AddMany([(self.st5, 1, wx.EXPAND),
                              (self.pt2_1, 1, wx.EXPAND)])
        self.hsizerb.Add(self.fgs_pt2, 1, wx.EXPAND |wx.ALIGN_CENTER|wx.ALL, 10)
        self.SetSizer(self.hsizerb)

class MyNotebook(wx.Notebook):
    def __init__(self, parent):
        wx.Notebook.__init__(self, parent)
        self.page1 = PageOne(self)
        self.page2 = PageTwo(self)

        self.AddPage(self.page1, "Tab 1")
        self.AddPage(self.page2, "Tab 2")


class MainFrame(wx.Frame):
    def __init__(self, parent, fid, title):
        wx.Frame.__init__(self, parent, fid, title, \
            pos = (200, 50), \
            size = (500, 200), \
            style = wx.DEFAULT_FRAME_STYLE \
                |wx.NO_FULL_REPAINT_ON_RESIZE)

        panel1 = wx.Panel(self, -1)
        panel1.SetBackgroundColour("blue")

        nb = MyNotebook(panel1)

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(nb, 1, wx.ALL|wx.ALIGN_CENTER|wx.EXPAND, 1 )
        panel1.SetSizer(sizer)
        panel1.SetAutoLayout(True)
        self.Show(True)

if __name__ == "__main__":
        app = wx.App(False)
        frame = MainFrame(None, wx.ID_ANY, "MY PROGRAM")
        app.MainLoop()

请注意,wx.PySimpleApp 现在已弃用,因此我将其替换为 wx.App(False)

就我个人而言,我只是将所有数据输入内容放在一个屏幕上或将其保存到数据库或使用套接字服务器或使用 pubsub 传递数据(这将需要在第二页上发生某种事件,例如笔记本更改 事件)。上面的代码是一个 hack,非常脆弱,但它确实工作。

Where did you get the idea to import wxPython like that? I'm surprised that even works. You are supposed to do it like this:

import wx

The way you are doing it comes from wxPython 2.6 or before, which is more than 5 years old. You really shouldn't be pulling information from the other screen like that either. You can do as the other fellow mentioned as a workaround (i.e. passing page 2 to page 1) or you can do this:

import wx
import os

class PageOne(wx.Panel):
    def __init__(self, parent):
        wx.Panel.__init__(self, parent)
        self.SetBackgroundColour("gray")

        self.tc1=wx.TextCtrl(self, -1, '',  (110, 15), (120, -1))
        self.tc2=wx.TextCtrl(self, -1, '',  (110, 15), (120, -1))
        self.tc3=wx.TextCtrl(self, -1, '',  (110, 15), (120, -1))
        self.st1=wx.StaticText(self, -1, "input", pos=(10, 12))
        self.st2=wx.StaticText(self, -1, "X:", pos=(10, 12))
        self.st3=wx.StaticText(self, -1, "Y:", pos=(10, 12))
        self.st4=wx.StaticText(self, -1, "Z:", pos=(10, 12))
        #flexgrid 
        self.fgs = wx.FlexGridSizer(1, 7, 9, 10) 
        self.fgs.AddMany([(self.st1, 1, wx.EXPAND),
                          (self.st2, 1, wx.EXPAND),
                          (self.tc1, 1,wx.EXPAND),
                          (self.st3, 1, wx.EXPAND),
                          (self.tc2, 1, wx.EXPAND),
                          (self.st4, 1, wx.EXPAND),
                          (self.tc3, 1, wx.EXPAND)])
        # statik text 
        self.hsizer1 = wx.BoxSizer(wx.HORIZONTAL)
        self.hsizer2 = wx.BoxSizer(wx.HORIZONTAL)
        self.vsizerb = wx.BoxSizer(wx.VERTICAL)

        self.hsizer1.Add(self.fgs, 1, wx.EXPAND |wx.ALIGN_CENTER| wx.ALL,1)

        self.but1=wx.Button(self, 1, 'Calculate', (10, 10))
        self.but1.Bind(wx.EVT_BUTTON, self.Create_OnClick)
        self.hsizer2.Add(self.but1, 1, wx.ALIGN_CENTER)

        self.vsizerb.Add(self.hsizer1, 1.8, wx.EXPAND | wx.ALL, 10)
        self.vsizerb.Add(self.hsizer2, 0.2, wx.EXPAND | wx.ALL, 10)
        self.SetSizer(self.vsizerb)

    def Create_OnClick(self, event):
        text1=self.tc1.GetValue()
        text2=self.tc2.GetValue()
        text3=self.tc3.GetValue()
        #here I want to get pt2_1 value from tab2 panel and assign it
        #to text4 varibale.
        #on the gui, if you fill all txtcrtl boxes and press calculate 
        #button, it gives values of text3 and text4 on cmd.
        #I can get text3 value but cannot get text4 value.It gives null?
        notebook = self.GetParent()
        pageTwo = notebook.page2
        text4=pageTwo.pt2_1.GetValue()
        print "text_fromtab2:",text4,"text_fromtab1:",text3
        yer=os.getcwd()

class PageTwo(wx.Panel):
    def __init__(self, parent):
        wx.Panel.__init__(self, parent)
        self.SetBackgroundColour("gray")

        self.hsizerb = wx.BoxSizer(wx.HORIZONTAL)
        self.st5=wx.StaticText(self, -1, "Input 1 (mm)", pos=(10, 12))
        # I want to be able to get these values from PageOne 
        self.pt2_1=wx.TextCtrl(self, -1, '',  (110, 15), (120, -1))

        self.fgs_pt2 = wx.FlexGridSizer(1, 2, 10, 10)   
        self.fgs_pt2.AddMany([(self.st5, 1, wx.EXPAND),
                              (self.pt2_1, 1, wx.EXPAND)])
        self.hsizerb.Add(self.fgs_pt2, 1, wx.EXPAND |wx.ALIGN_CENTER|wx.ALL, 10)
        self.SetSizer(self.hsizerb)

class MyNotebook(wx.Notebook):
    def __init__(self, parent):
        wx.Notebook.__init__(self, parent)
        self.page1 = PageOne(self)
        self.page2 = PageTwo(self)

        self.AddPage(self.page1, "Tab 1")
        self.AddPage(self.page2, "Tab 2")


class MainFrame(wx.Frame):
    def __init__(self, parent, fid, title):
        wx.Frame.__init__(self, parent, fid, title, \
            pos = (200, 50), \
            size = (500, 200), \
            style = wx.DEFAULT_FRAME_STYLE \
                |wx.NO_FULL_REPAINT_ON_RESIZE)

        panel1 = wx.Panel(self, -1)
        panel1.SetBackgroundColour("blue")

        nb = MyNotebook(panel1)

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(nb, 1, wx.ALL|wx.ALIGN_CENTER|wx.EXPAND, 1 )
        panel1.SetSizer(sizer)
        panel1.SetAutoLayout(True)
        self.Show(True)

if __name__ == "__main__":
        app = wx.App(False)
        frame = MainFrame(None, wx.ID_ANY, "MY PROGRAM")
        app.MainLoop()

Note that wx.PySimpleApp is now deprecated, so I swapped it out for wx.App(False)

Personally, I would just put all the data entry stuff on one screen or save it to a database or use a socket server or pass the data around using pubsub (which would require some kind of event to occur on page two, such as a notebook change event). The code above is a hack and is pretty brittle, but it does work.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文