使用 Glade 在 Gtk 树视图中创建具有可编辑单元格的列
我正在尝试创建一个简单的 GUI,其中包含样本的 x 和 y 坐标表。我使用树视图,我希望用户可以编辑表格的单元格。是否可以指定单元格是否可以直接在 Glade 的 cellrenderer 属性中进行编辑,还是必须在代码中指定?我使用 Glade 3.6.1
我刚刚发现在编辑树视图时取消勾选树视图编辑器中的“可编辑”框,使我能够指定单元格是否可编辑,因为如果取消勾选该框,则单元格可编辑属性不再与模型相关。 但是,如果我运行该程序,单元格是可编辑的,但我在其中写入的值会消失。我该如何解决这个问题?为什么单元格不存储我在其中输入的值?
感谢您的任何提示
I am trying to create a simple GUI with table containing x and y coordinates of samples. I use treeview, and I want the cells of the table to be editable by user. Is it possible to specify if the cells should be editable directly in Glade in cellrenderer properties, or do I have to specify it in my code? I use Glade 3.6.1
I have just found out that unticking box "Editable" in the Tree View Editor when editing my treeview, enables me to specify whether the cells shall be editable or not, because if the box is unticked, the cells editable property is no longer connected with the model.
But if I run the program, cells are editable, but the value that I write inside disappears. How can I fix that? Why doesn't the cell store the value I type inside?
Thanks for any hint
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
对于处理类似问题的任何人,我已经解决了它 - 每当编辑单元格时,都需要更改模型中的适当记录,Python 中的示例代码:
For anyone dealing with a similar problem, I have solved it - whenever a cell is edited, appropriate record in the model needs to be changed, example code in Python:
对于 python GTK,默认情况下,Gtk.CellRendererText 小部件中的文本不可编辑,您可以通过将“editable”属性的值设置为 True 来更改此设置:
然后您可以连接到“edited”信号并更新您的 Gtk.TreeModel和/或相应的数据库:
查看本教程以获取更多信息 python gtk 3 教程 - CellRendererText
for python GTK, by default, text in Gtk.CellRendererText widgets is not editable, you can change this by setting the value of the “editable” property to True:
then you can connect to the “edited” signal and update your Gtk.TreeModel and/or database accordingly:
check this tutorial for more information python gtk 3 tutorial - CellRendererText
我发现我必须做一些稍微不同的事情,但我也在使用 Ubuntu 的 Quickly 开发环境。我确实必须进入 Glade 并取消选中 cellrenderer 中的“可编辑”框,然后弹出一个可切换的“是/否”按钮。然后我的代码如下所示:
I found I had to do something just a little different, but I am also using Ubuntu's Quickly development environment. I did have to go into Glade and uncheck the "Editable" box in my cellrenderer, which then brought up a toggable "Yes/No" button. Then my code looks like: