问题标签 [wxgrid]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wxgrid - 在 wxGrid 中,如何只允许选择一个单元格?
我正在使用 wxGrid 并希望用户只能选择一个单元格,而不是一个单元格块。(或者可能在同一列中有多个单元格,但不一定是整个列。)我有机会工作的唯一想法是将 ClearSelection() 放在 EVT_GRID_CMD_RANGE_SELECT 中,但是(并不奇怪)这会导致堆栈溢出。
python - wxpython Event order
I have a wxPython gui with a grid. When a user clicks on certain cells, a drop-down menu will pop up.
The method on_left_click pulls up the drop-down menu and works as expected. The problem is that I want the default behavior for wx.grid.EVT_GRID_SELECT_CELL to happen first, and then for my custom method to fire. Normally, when you click on a grid cell, that cell's border gets bold. With my binding, the my drop-down menu appears first, and only once the drop-down menu is dismissed does the cell border get selected. I tried calling self.grid.SetGridCursor(row, col), but that generates a wx.grid.EVT_GRID_SELECT_CELL event, which causes a recursion max out and obviously is no good. I also tried using event.Skip() in the on_left_click code, but it doesn't seem to have an effect.
Here is the awkward, objectionable behavior (I just clicked on row 0, col 2):
Here is the desired behavior:
I am happy to provide more of the code if needed. I would like to do one of the following. One, somehow force wxPython to fully process wx.grid.EVT_GRID_SELECT_CELL before moving on to my custom drop-down menu. Two, manually duplicate the effect of "highlighting" the selected cell in my own code.
Thanks in advance for any help.
edit:
Here's what I ended up doing.
In place of wx.grid.EVT_GRID_SELECT_CELL, I used wx.grid.EVT_GRID_CELL_LEFT_CLICK which is essentially the first event to be fired when a user clicks on a grid cell, so I could fully customize the behavior following that initial click. Then, I could use this:
to outline the cell without creating the infinite recursion error, as well as implementing a bunch of other behavior that is now working more smoothly. I also needed to use self.grid.Refresh().
python - wxPython网格工具提示不起作用
我正在尝试使用 Mike Driscoll 的解决方案在 wxPython 网格中制作工具提示消息,如下所述:http: //www.blog.pythonlibrary.org/2010/04/04/wxpython-grid-tips-and-tricks/。这是我的最小示例。
工具提示根本不显示。打印语句按预期工作,所以我知道绑定有效并且事件被捕获。我假设我错过了一些简单的东西 - 也许我需要在某处初始化工具提示?- 但我不确定是什么。有任何想法吗?
更新:
问题似乎是 wxPython 的版本和平台的组合。该代码在带有 wxPython 2.8.10.1 的 Windows 上按预期工作。它在 Mac 上使用 2.9.2.4 失败,但在 3.0.2.0 上成功。一般来说,我们需要 GUI 的用户安装 Enthought 的 Python 的 Canopy 发行版,它附带 2.9.2.4(wxPython 的失败版本)。
使用 event.Skip() 似乎并不重要。
既然我知道这是一个 wxPython 版本问题,我会以不同的方式处理这个问题。
python - 对 wxgrid 中的数据进行排序
我正在尝试从 wxgrid 获取网格中最后一列(第 11 列)的值,如果单元格不为空,则附加到列表中。我似乎无法弄清楚为什么列表中充满了很多空值
有人可以向我解释一下我是怎么搞砸的吗?
python - wxPython - 在 wx.grid 中打开、编辑和保存 csv 文件
我想打开一个具有以下结构的 CSV 文件:
文件的内容必须显示在 wx.table 中。至于我已经完成了。这是我的代码:
现在我想更改此表中的值并相应地再次保存在同一个 CSV 文件中。您对我如何实施它有好的想法吗?
python - 如何在 wxPython 中将 wx.Grid 居中
我正在尝试将 awx.grid.Grid
在 wxPython 中居中。我已经尝试了 ID 参数 1,0,-1 的所有可能组合。我试图添加wx.ALIGN_CENTER_HORIZONTAL
到许多尺寸器。我已经为此工作了几天,任何帮助将不胜感激。
我的问题是:“如何使我的 wxgrid 居中?”
这是我的代码:
主文件
日志视图.py
网格表.py
wxwidgets - wxGrid 析构函数触发断点
我是 wxWidgets 的新手,尽管在此之前我已经能够让应用程序启动并相当顺利地运行。对于主窗口,我在 wxPanel 中使用了 wxGrid。一切运行良好,直到我关闭程序。
提前感谢您的任何见解。
网格是从 wxPanel 派生的类的成员:
并在构造函数中创建。网格的数据来自另一个线程,因此我创建了一个自定义事件来实际写入数据。
一切运行良好,但是当我关闭时,我收到以下消息。我已经指出了断点所在的行。从我应该遵循的网格中清除数据是否有一些不足的顺序?
python - 如何在使用 wxFormBuilder 创建的表单中读取/更新 wxgrid
我在名为 gui.py 的 .py 文件中创建了一个名为 MyFrame1 的带有 wxFormBuilder 的框架。我正在尝试在该网格中读取和写入值,但为了解决问题已经卡了几个小时。这是代码的简化版本,因为我之前发布的示例过于复杂。
该应用程序在 maingridtest.py 中启动,我正在尝试从那里读取和写入网格。如果我将所有内容集成到一个文件中(wFormBuilder gui 和 maingridtest 到说'code.py'我可以读写网格没有问题。我希望 formbulider 代码保持分开以简化对 gui 的更新。
无论我尝试什么,我都无法让 python 在 gui.py 中找到 m_grid1。
这是 maingridtest.py
这是gui.py
python - wxPython Clipboard GetData 不维护 Mac 上的制表符或换行符
嗨,我是 python 新手,否则我是自学成才的程序员。
我正在尝试让复制和粘贴方法适用于 wxpython 中的剪贴板。
我已经找到并实现了我在该主题上找到的内容,但是在我的 mac 计算机(OS X 10.10.5)上使用时出现问题。
附加的代码是一个示例应用程序,它本身可以正常工作(给定网格限制)。它也适用于从网格单元复制并粘贴到外部记事本或电子表格。对我而言,这意味着 SetData 在构建剪贴板数据时正在获取和维护制表符分隔符和新行。
但是,如果我从同一个记事本或电子表格中选择制表符分隔和多行数据并继续粘贴到网格中,我会得到一列数据。这对我来说意味着制表符分隔符和换行符在 GetData 中丢失了。
随着数据选择
1 2 3
4 5 6
在电子表格中。
按照建议,使用 print repr(data) 获取剪贴板所保存的内容,在应用程序中复制和粘贴时会导致粘贴数据 - print repr(data) = u'1\t2\t3\n4\t5\t6\n'
当从外部源复制数据并粘贴时似乎只有 \r 返回字符和 ufeff ?? 我不知道?也许那是一把钥匙?(在 Mac 上)
打印 repr(数据) = u'\ufeff\r1\r2\r3\r4\r5\r6\r\r'
现在这在我的 Windows 机器上运行良好,但在我的 Mac 上却不行。
这是一个已知的问题?是否有解决方法,或者是否有我遗漏或不理解的设置?
非常感谢任何帮助或指导。谢谢弗兰克