我在pyCharm中编写一个wxPython项目(主要是从wxGlade生成).如果我有一些指定字符串的代码,例如:
value_label = wx.StaticText(self, wx.ID_ANY, _("Value"))
Run Code Online (Sandbox Code Playgroud)
然后抱怨Unresolved reference '_'.有没有办法只忽略这个未解决的参考?
我有一个用 wxglade 制作的应用程序。我添加了一个媒体控件来播放 mp3:s。如果没有媒体控制,应用程序将以 800x600px 的框架启动。但是当我添加媒体控件时,框架非常小。我相信这是因为我没有将其添加到 sizer 中。但我必须这样做吗?无论如何,媒体控件不应该显示任何内容。
所以,我的问题是,如何将媒体控件添加到我的应用程序中,而不会(a)破坏使用 wxglade 更新 gui 的可能性以及(b)失去以正确大小启动的能力?
如果可以的话我不会在# Begin wxglade和之间放置任何东西# End wxglade。因为如果我用 wxglade 更改我的 gui(无论如何根据早期的测试),它就会被破坏。
编辑:我提供的代码片段没有添加任何有趣的内容。我还编辑了问题以使其更加清晰,以便其他有相同问题的人可以找到答案。
我正在进行GUI编程,我正试图掌握wxPython.我正在尝试使用wxGlade,但事实证明它有点儿麻烦.
我正在使用GridSizer进行布局.
我已经知道每次向sizer添加内容时,它都会被放入下一个单元格中.这意味着如果你有一个空单元格,你需要填充一些东西.我对吗?
这是我要去的布局(wxGlade截图):

问题是,生成代码我得到了这个:

grid_sizer_1 = wx.GridSizer(3, 3, 0, 0)
grid_sizer_1.Add(self.button_last_page, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 0)
grid_sizer_1.Add(self.button_up, 0, wx.ALIGN_BOTTOM|wx.ALIGN_CENTER_HORIZONTAL, 0)
grid_sizer_1.Add(self.button_next_page, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 0)
grid_sizer_1.Add(self.button_left, 0, wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL, 0)
grid_sizer_1.Add(self.button_select, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 0)
grid_sizer_1.Add(self.button_right, 0, wx.ALIGN_CENTER_VERTICAL, 0)
grid_sizer_1.Add(self.button_down, 0, wx.ALIGN_CENTER_HORIZONTAL, 0)
Run Code Online (Sandbox Code Playgroud)
看似因为"向下"按钮被放入第7个单元而不是第8个单元.
处理这个问题的标准方法是什么?你会把一些虚拟小部件填入空单元格吗?如果是这样的小部件?或者我使用了错误的sizer?
谢谢!
WPF使用XAML.Gtk有GladeXML和相关工具.
Qt有类似的东西吗?
只是为了澄清:我问的是从标记文件中加载UI的运行时.XML/YAML/JSON等
谢谢
我注意到标准对话框在Windows和Linux下以不同的顺序显示了一些CANCEL和OK按钮.在Linux下,你会得到"[CANCEL] [OK]",在Windows下,"[OK] [CANCEL]".
我对标准对话框没有问题,但是我的"自定义对话框"必须调整以匹配相同的顺序,这取决于操作系统
我的疑惑:
1.-它似乎存在一个叫做的类wx.StdDialogButtonSizer,但我不确定它应该如何使用.有人可以发布任何工作简单/工作的例子吗?
而"主要问题":
2.-我使用wxglade来"构建"对话框的代码,所以我不确定我是否可以使用StdDialogButtonSizer.有没有办法用给定的顺序定义对话框,并在运行时检查按钮是否遵循正确的顺序并"交换"这两个小部件,如果没有?
谢谢