我试图了解以下概念,但我阅读的所有文档都将所有文档捆绑在一起,而没有解释它们中的任何一个真正是什么,因此我不知道如何正确使用它们中的任何一个. 如果有人能给出某种现实世界的类比,那将大有帮助。
TreeView ListView(这甚至是一件事吗?) TreeStore ListStore TreeModel TreeIter
我的最终目标是从数据库中读取一组结果并将它们作为可点击的项目显示在小部件上。我已经完成了查找和检索部分,但将结果传回、显示它们并让它们更新被证明要棘手得多。
更新: 以下内容旨在从 postgreSQL 数据库中读取结果并将其放入“容器”中,从那里我可以将结果分配给输出对话框:
result = self.lookup_player(search) # this returns a result of cur.fetchall
print result # just to make sure it returns the right things
if len(result) > 0: # make sure there are results
for i in range(0, len(result)): # i used treeiter to see what it did
treeiter=store.append([result[i][0],result[i][1],str(result[i][4])])
print result[i][0],result[i][1],result[i][2],result[i][3],result[i][4],result[i][5],result[i][6],result[i][7],result[i][8],result[i][9],result[i][10]
else:
print "No players found"
Run Code Online (Sandbox Code Playgroud)
我在上面使用了 ListStore,因为它看起来最合适。但也许我应该使用 Treestore,或者一个简单的列表,或者一个数组……很容易看出字符串是什么,或者一个整数,一个浮点数,但是这些列表/树/模型/商店实际上是什么样子的或者做什么?
几年前我不得不放弃用 C 编码,因为我无法理解多态链表是什么,而这次我非常想避免与 python 相同的命运。
我有一个窗口,它有两个下拉列表(国家和俱乐部),它们永远不应该同时可见。
当应用加载时,两者都不应该可见。第三个下拉列表(锦标赛类型),默认情况下不选择任何内容,决定应显示哪个俱乐部或国家/地区列表。单击屏幕顶部的按钮会填充下拉列表,选择适当的锦标赛类型和相关的俱乐部/或国家/地区。
实际发生的情况:加载时,两个下拉列表都可见。选择锦标赛类型后,两个列表都可见。当我单击顶部的按钮时,俱乐部列表可用,而国家列表则不可用。后者正是它应该的样子。
我使用相同的函数 (set_visible()) 在每种情况下显示或隐藏列表,所以我不知道为什么它在一种情况下有效,而在其他两种情况下无效。
下面的代码应该运行。#Add Tournaments Tab 之后的位创建了小部件,但未成功尝试隐藏组合框。函数 on_type_combo 更改未成功尝试隐藏组合框之一。函数 on_tournament_details 成功隐藏了相应的框。
#!/usr/bin/python
# coding=utf-8
from gi.repository import Gtk
import wikipedia
class NotebookWindow(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="Rugby Database")
#Initialise data
self.country_store = Gtk.ListStore(int, str, str)
self.club_store = Gtk.ListStore(int, str, str, int, int)
self.tournament_store = Gtk.ListStore(int, str, int, str, int)
self.cur_id = 0
self.cur_club = ''
self.cur_club_id = 0
self.update_club_id = 0
self.update_tournament_id = 0
self.initialise_lists()
#Create Application Window
self.set_border_width(10)
self.set_default_size(800, 600)
self.set_position(Gtk.WindowPosition.CENTER)
#Add external container (box)
vbox = …Run Code Online (Sandbox Code Playgroud) 我正在尝试动态创建一个谷歌日历事件,除了时间,我的大部分工作都在工作
尽管谷歌日历将时区显示为欧洲/布鲁塞尔和 GMT+2,但它显示的时间比我通过它的时间晚两个小时。在上面的例子中,我希望它在 15.40 CET (UTC+2) 创建一个事件,但它在 17.40 创建它。
另外,有没有办法以 DD/MM/YYYY 格式传递日期并让日历理解并转换它?