PythonとTKinterでニュース表示アプリを作る

taketoshi
記事: 222
登録日時: 14年前
住所: 日本国

PythonとTKinterでニュース表示アプリを作る

投稿記事 by taketoshi » 4年前

昨日の日記に引き続きpythonでのプログラミングです。

python歴一週間目の超初心者が
ネットから取得したデータを解析して延々とニュースを表示し続けるアプリを開発する試みです。
関数の使い方やTKの使い方を調べながら作っていたら二時間くらいかかりました。
C系の言語を使っているとスクリプト言語の書き方にはなかなか慣れずに苦悩しました。

main関数(だと思っている)流れの中に関数やクラスが定義できるぶっ飛び方に脱帽です

実行すると。。。うまく動いているようです
47都道府県別の新型コロナの情報が出てきたのにはちょっとびっくりしました。
タイトルなし.png
タイトルなし.png (13.24 KiB) 閲覧数: 220 回
途中までクラス化を意識して書いていたのですがよーわからんかったので
途中から構造体に切り替えてガチ手続き型で書き進めてしまった。
タイマーを実装するのにRepeat関数で再帰しているのがちょっとしたコツです。

次回はもう少しオブジェクト化するのと。Linux上で走らせてみようと思っています。

CODE:


import feedparser
import tkinter

#変数宣言
datalist = []
timer = 0

#読み込み先定義    
RSS_URL = 'https://www3.nhk.or.jp/rss/news/cat1.xml'

#データを格納する構造体
#一件の記事につき一つ生成するよー
class data_struct:
    def __init__(self,argsnumber,argstitle,argssummary):
        self.data_number = argsnumber    #記事番号
        self.data_title = argstitle      #記事タイトル
        self.data_summary = argssummary  #記事本文

#タイマー関数
def Repeat():
    global l_title
    global l_summary
    global timer
    l_title["text"] = datalist[timer].data_title
    l_summary["text"] = datalist[timer].data_summary
    timer += 1
    if datalist.count == timer:
        timer = 0
    root.after(5000,Repeat)

#xmlデータを取得
data = feedparser.parse(RSS_URL)

#構造体データ格納
count = 0
for entry in data.entries:
    datalist.append(data_struct(count,entry.title,entry.summary))
    count += 1

#メインウインドウ作成
root = tkinter.Tk()
#root.attributes('-fullscreen',True)
root.configure(bg='black')

#タイトルラベルと記事の内容
l_title = tkinter.Label(root)
l_summary= tkinter.Label(root)

#メインウインドウの設定
root.after(0,Repeat)
l_title.pack()
l_summary.pack()

root.mainloop()


コメントはまだありません。