【问题标题】:Read configuration settings from XML file for Gtk3 application从 XML 文件中读取 Gtk3 应用程序的配置设置
【发布时间】:2012-01-18 18:08:18
【问题描述】:

我正在尝试使用 Gtk3 和 Python 开发桌面应用程序。它基本上是一个 Twitter 客户端。我打算将身份验证设置(访问令牌和访问令牌机密)存储在 XML 文件中。现在我希望在应用程序启动时阅读它们。

我遇到的问题是在哪里放置读取 XML 文件的代码。

身份验证需要以下步骤:

auth = tweepy.OAuthHandler(cons_key,cons_secret)
auth.set_access_token(access_token,access_token_secret)
api = tweepy.API(auth)

我不能将读取的代码放在主窗口的构造函数中,因为当窗口打开时,会调用获取推文的方法。我已将代码放在github

XML文件如下:

<?xml version="1.0" ?>
<credentials>
 <access_token>
  76611638-TSnLa31lRXEp3qBNpxKmi2gyiW0jCLpOKeEsK5i6A
 </access_token>
 <access_token_secret>
  wgC9xwGpCMOQQtDazOZF7wtvCA5MrtcaLT6gLv1vdE
 </access_token_secret>
</credentials>

【问题讨论】:

    标签: python xml gtk3


    【解决方案1】:

    更新

    尝试在程序开始时读取 xml(使用 lxm)。 使用从 xml 读取的数据初始化您的 api

    MainWindow.__init__():

    声明/创建self.myapi=api

    在您的类方法(MainWindow 的方法)中使用self.myapi,在您的函数中使用api

    你为什么不尝试移动:

    auth=tweepy.OAuthHandler(cons_key,cons_secret)
    auth.set_access_token(access_token,access_token_secret)
    api=tweepy.API(auth)
    

    到:

    #Class of the main window
    class MainWindow():
        #Main Window constructor
        def __init__(self):
            message=['','','','','','','','','','']
            users=['','','','','','','','','','']
            image_url=['','','','','','','','','','']
    
            #read xml here (with lxml)
            #get credentials
            #get auth
    
            statuses=api.home_timeline()
            loader=GdkPixbuf.PixbufLoader()
    

    如果这不起作用,请告诉我。

    【讨论】:

    • 我无法在那里推送文件的读取,因为我制作推文和流的方法在类之外,并且它们使用 api 对象。我尝试在类之前使用令牌值初始化一个 api 对象以避免错误,并使用从文件中读取的实际值重新初始化一个 api 对象,但正因为如此,令牌已过期。
    • 它不起作用,好像没有访问令牌存在,会有错误。无论如何,我设法用类本身和它现在的工作来形成函数。当访问令牌不存在时,只需要掌握授权部分
    • 好的。这是可以做到的。但是如果配置文件不存在怎么办,比如说第一次启动应用程序。在这种情况下,我希望显示另一个授权窗口
    • 这样你就可以创建另一个类 (ErrorWindow) 并初始化它而不是你的 MainWindow,以防文件不存在。
    猜你喜欢
    • 1970-01-01
    • 2021-11-27
    • 1970-01-01
    • 1970-01-01
    • 2011-01-14
    • 2010-10-28
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    相关资源
    最近更新 更多