- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
这似乎是windows特有的,这里有一个重现效果的例子:
import wx
def makegrid(window):
grid = wx.GridSizer(24, 10, 1, 1)
window.SetSizer(grid)
for i in xrange(240):
cell = wx.Panel(window)
cell.SetBackgroundColour(wx.Color(i, i, i))
grid.Add(cell, flag=wx.EXPAND)
class TestFrame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent)
makegrid(self)
class TestDialog(wx.Dialog):
def __init__(self, parent):
wx.Dialog.__init__(self, parent)
makegrid(self)
class Test(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None)
btn1 = wx.Button(self, label="Show Frame")
btn2 = wx.Button(self, label="Show Dialog")
sizer = wx.BoxSizer(wx.VERTICAL)
self.SetSizer(sizer)
sizer.Add(btn1, flag=wx.EXPAND)
sizer.Add(btn2, flag=wx.EXPAND)
btn1.Bind(wx.EVT_BUTTON, self.OnShowFrame)
btn2.Bind(wx.EVT_BUTTON, self.OnShowDialog)
def OnShowFrame(self, event):
TestFrame(self).Show()
def OnShowDialog(self, event):
TestDialog(self).ShowModal()
app = wx.PySimpleApp()
app.TopWindow = Test()
app.TopWindow.Show()
app.MainLoop()
我已经在以下配置上尝试过:
wxDialog 不仅在 Ubuntu 上很慢。
最佳答案
我在 wxPython-users mailing list 上收到了回复,可以通过在显示对话框之前显式调用 Layout
来解决此问题。
This is really weird...
My guess is that this is due to Windows and wxWidgets not dealing very well with overlapping siblings, and so when the sizer is doing the initial layout and moving all the panels from (0,0) to where they need to be that something about the dialog is causing all of them to be refreshed and repainted at each move. If you instead do the initial layout before the dialog is shown then it is just as fast as the frame.
You can do this by adding a call to window.Layout() at the end of makegrid.
-- Robin Dunn
关于python - 为什么 wxGridSizer 在 wxDialog 上的初始化比在 wxFrame 上的初始化慢得多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1198067/
我在 Linux 上使用 wxDialog 对象时遇到问题在对象的构造器中,我传递了相关的样式标志 (wxCAPTION|wxMINIMIZE_BOX|wxMAXIMIZE_BOX|wxCLOSE_B
我写了一个继承自wxDialog的类。我目前在 Ubuntu 12.04 上,使用 Code::Blocks 和 gcc 4.6。在我将此类包含在项目中之前,我的应用程序工作正常:调试和发布配置给出相
我正在创建我自己的 wxDialog 子类,它在用作无模式对话框时效果很好,如下所示: AddDialog newAddDialog = new AddDialog(this, wxID_ANY, _
我有大量使用 wxWidgets 的现有代码。主窗口是wxDialog。现在我必须向该对话框添加一个 wxMenuBar。但是,为了做到这一点,窗口应该派生自 wxFrame。 是否可以将 wxMen
如上图所示.. 我在 wxWidgets 中创建了一个 wxDialog。用户可以单击"is"或“否”。单击任一按钮后,将打开一个标准对话框,给出一条简单消息(覆盖成功或覆盖取消) 单击"is"或“否
我的 wxWidgets 程序应该可以在桌面 PC 和 Windows 平板电脑上运行。两者均使用 Windows 10 Pro 64 位版本。我怎样才能使大小不断变化的文本无论在对话框中显示在何处?
这是我的布局: 我有一个包含网格(比例为 1)和确定/取消按钮栏的 sizer 所有的东西都在一个 wxDialog 中 这里是: ||||||||||||||| | | |
我是 C++ 新手,也是 Codelite 新手,也是 wxCrafter 新手。我正在尝试构建一些 GUI 应用程序,但我对 C++ 中的对象传递感到困惑。我花了几个小时,我才明白一点。首先,要在
和上次类似的问题。我运行代码,退出它。 GUI 消失了,它似乎已经完全退出,但我检查了我的进程列表,代码仍然保留在内存中。 我已经将它缩小到对 wxFileDialog 的调用。我不明白我做错了什么,
是否有可能使 wxFrame 对象表现得像模态对话框,因为创建 wxFrame 对象的窗口会停止执行,直到 wxFrame 对象退出? 我正在研究 small game并遇到了以下问题。我有一个托管主
这似乎是windows特有的,这里有一个重现效果的例子: import wx def makegrid(window): grid = wx.GridSizer(24, 10, 1, 1)
我的程序打开一个基于 wxFrame 的窗口和多个基于 wxDialog 的无模式和无父窗口。除了基于 wxDialog 的窗口坚持始终位于基于 wxFrame 的窗口之上之外,这一切都运行良好。 我
我是一名优秀的程序员,十分优秀!