我知道这个问题在这里被问了好几次,相信我,在把我的问题贴到这里之前,我已经读了很多。但我还没有解决我的问题。因此,任何帮助都将不胜感激。你知道吗
首先,这涉及4个不同类中的4个函数(在单独的文件中,使用import
访问,这不是关注点)。你知道吗
以下是所涉及函数的scriptlet:
主程序
class MyWindow(Gtk.Window):
def __init__(self):
MenuElem = menu.MenuManager()
TreeView = view.treeview()
grid.attach(TreeView.view, 30, 0, 25, 21) #defined properly,
#just not shown for bravity
菜单管理器模块(显然在菜单.py)
import pybib
import view
class MenuManager(Gtk.UIManager):
def __init__(self):
self.parsing = pybib.parser()
self.TreeView = view.treeview()
def file_open_clicked(self, widget):
filename = dialog.get_filename()
self.parsing.parsing_read(filename)
####### HERE I NEED TO CALL VIEW.PY
## AND ATTACH IT TO THE GRID.ATTACH LINE
## iN MAIN.PY######
##e.g. self.Treeview()
那个pybib.语法分析器是相当小的代码,而且应该将参数作为输入和输出,所以请允许我完整地发布:
class parser():
# def __init__(self):
def parsing_read(self, filename):
import bibtexparser
from bibtexparser.bparser import BibTexParser
# from bibtexparser.bwriter import BibTexWriter
from bibtexparser.bibdatabase import BibDatabase
db = BibDatabase()
with open(filename) as bibtex_file:
parser = BibTexParser()
db = bibtexparser.load(bibtex_file, parser=parser)
for i in range(0, len(db.entries)):
tuples = (i+1, db.entries[i].get("title"),
db.entries[i].get("author"),
db.entries[i].get("journal"),
db.entries[i].get("year"))
print(tuples)
#booklist.append(tuples) I should be able to pass the
#booklist to view somehow
现在,最后是视图.py
class treeview():
def __init__(self):
#booklist = [] should take the booklist created by pybib
self.bookstore = Gtk.ListStore(int, str, str, str, str)
for ref in booklist:
self.bookstore.append(list(ref))
self.current_filter_language = None
self.view = Gtk.TreeView(model=self.bookstore)
for i, column_title in enumerate(["Index", "Title", "Author",
"Publishers", "Year"]):
renderer = Gtk.CellRendererText()
renderer.set_property("wrap-width", 400)
if i > 2:
renderer.set_property("wrap-width", 150)
renderer.set_property("wrap-mode", 0)
column = Gtk.TreeViewColumn(column_title, renderer, text=i)
self.view.append_column(column)
print("view working")
我已经检查了个别代码工作正常,但不能通过数据正确。根据我的理解,我将scriptlet保持得尽可能小。你知道吗
我应该提到的是,我在python方面的经验仅限于在单个文件中编写脚本,这是我第一次真正做oop
。你知道吗
请帮忙。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐