Pythonで簡単な小説リーダーを作成する方法を教えてください

/序文/

いつ始まったのかわかりません。小説は波を起こし始めており、日常生活が退屈することはなく、小説ではできないことも簡単に実現できます。

多くの人がPythonを学び、どこから始めればよいのかわかりません。
多くの人がPythonを学び、基本的な文法を習得した後、どこから始めればよいかわかりません。
事例研究を行った多くの人々は、より高度な知識を学ぶ方法を知りません。
これらの3つのタイプの人々のために、私はあなたに優れた学習プラットフォームを提供し、ビデオチュートリアル、電子書籍、およびコースのソースコードを無料で受け取ることができます!??
¤QQグループ:232030553

今日は、携帯電話での通常の読書と同じように、記事の単語を数秒ごとに表示できる新しいリーダーを紹介します。おもしろいですね。それでは、それがどのように実装されているかを以下で詳しく見ていきましょう。

/実装/

斬新な読者にとってはもちろんインターフェースは欠かせないので、インターフェースを書き始めましょう。

1.最初に使用する必要のあるパッケージをインポートします

インポート時
のTkinterのインポートメッセージボックスから
の輸入のTkinterトンとして
TkinterのインポートTTKから
TkinterのインポートのFileDialogから
Tkinterをインポートsimpledialogから
复制代码

2.メインインターフェイスを作成します

class gui:
    def __init __(self):
        self.root = t.Tk()
        self.root.title( 'Fiction Reader V1.0')
        #ウィンドウself.root.geometry( "700x700")#ウィンドウサイズを設定
        self .root.wm_attributes( '-topmost'、1)上部のウィンドウ
        self.root.wm_minsize(140、170)#ウィンドウの最小サイズを設定self.root.wm_maxsize(1440、2800)#の最大サイズを設定the window 
        self .root.resizable(width = False、height = True)#ウィンドウの幅を不変に設定し、高さは可変です
        self.te = t.Text(self.root、width = 60、height = 40) #複数行のテキストボックス
        self.b1 = t.Button(self.root、text = 'ファイルを開く'、font =( "宋体"、10、 '太字')、command = self.open_file)
        self.cb = ttk .Combobox(self.root、width = 12)#ドロップダウンリストボックス 
        self.b2 = t.Button(self.root、text = '空のコンテンツ'、command = self.clean)#button
        self.l1 = t.Label(self.root、text = '読み取り速度を選択してください:')
        #label self.cb ['values'] =( '選択してください-----'、 'すべて読み取り'、 '1行
        /秒'、 ' 2秒/行'、 'カスタマイズ')ドロップダウンリストボックスの内容を設定します   self.cb.current(0)#現在の選択ステータスを最初の0に設定しますitem 
        self.cb. bind( "<< ComboboxSelected >>"、self.go)#go関数をバインドしてから、イベント
        self.b1.place(x = 30、y = 30)
        self.b2.place( x = 360、y = 26)
        self.l1.place(x = 130、y = 30)
        self.te.place(x = 30、y = 60)
        self.cb.place(x = 230、y = 30)
        self.root.mainloop()
コピーコード

3.ファイルダイアログを開くためのコードを記述します

def open_file(self):
        self.file = filedialog.askopenfilename(title = 'Open File'、filetypes = [( 'Text File'、 '* .txt')、( 'All Files'、 '*')])
        return self.fileCopy
コード

これにより、テキストファイルが先頭にあるファイルが開きます。

4.開くファイルを選択して読み取ります

= self.ff(self.file、 'R&lt'、encoding = 'UTF8')を
開くAA = self.ff.read()
コードをコピーする

5.ファイルの内容のすべてのスペースを削除します

self.ab = aa.replace( '\ n' 、 '') 。replace( '\ t'、 '') 。strip( )
を使用してコードをコピーします

6.ドロップダウンリストの各オプションの機能を実現します

if self.cb.get()== '選択してください-----':
            パス
        elif self.cb.get()== 'すべて読み取り':
            if self.ab:
                self.te.insert( 'insert' 、self.ab)#insert content 
                self.te.update()#update content 
            else:
                self.ff.close()
        elif self.cb.get()== '1行/秒':
            for y in range(len (self.ab)):#self.abの
                場合はファイルの内容をトラバースします
                    self.te.insert( 'insert'、self.ab [y])#
                    y%10 == 0およびy!= 0の場合は内容を挿入します: #10語の長さが読み取られるかどうかを判断し、テキストコンテンツをテキストボックスに挿入して折り返します
                        self.te.insert( 'insert'、 '\ n')改行を挿入self.te.update()#updateコンテンツupdate() 
                    #コンテンツを更新するelse:
                        time.sleep(0.1)#0.1秒ごとに1つ、1行あたり10文字を表示し
                ます。それ以外の場合は、1秒あたり1行に到達できます
                    。self.ff.close()ファイルを閉じるelif self.cb.get()== 'Two 
            1あたり1行 ':範囲内のyの
                場合(len(self.ab)):if self.ab:
                    self.te.insert(' insert '、self.ab [y])
                    if y%10 == 0 and y != 0:
                        self.te.insert( 'insert'、 '\ n')
                        self.te.update()
                    else:
                        time.sleep(0.2)
                else:
                    self.ff.close()
        elif self.cb.get( )= = 'カスタム':
            res = simpledialog.askinteger(title = '入力してください'、prompt = '数秒で行を読み取ります:'、initialvalue = '')
            for y in range(len(self.ab)):
                if self.ab:
                    self .te .insert( 'insert'、self.ab [y])
                    if y%10 == 0 and y!= 0:
                        self.te.insert( 'insert'、 '\ n')
                        self.te.update( )
                    else:
                        time.sleep(RES / 10)
                else:
                    self.ff.close()
コードをコピーします

このようにして、毎秒10バイトごとに1行が出力されます。もちろん、単語ごとに出力することもできます。その場合は、次のコードを変更するだけです。

for y in range(len(self.ab)):#self.abの
                場合はファイルコンテンツをトラバースします
                    self.te.insert( 'insert'、self.ab [y])#
                    y%10 == 0の場合はコンテンツを挿入しますy!= 0:10バイトの長さが読み取られたかどうかを判断して、テキストボックスにテキストコンテンツを挿入しますself.te.insert( 'insert'、 '\ n')
                        self.te.update()#コンテンツを更新します
                    else:
                        time.sleep(0.1)
コピーコード

に:

for y in range(len(self.ab )):#ファイルの内容をトラバースする
                IF self.ab:
                    IF%10 == 0およびY = Y 0:!#テキストを読み取るために10バイトの長さを挿入するかどうかを決定するテキストボックスのコンテンツ
                        self.te.insert( 'insert'、 '\ n')
                    else:
                        self.te.insert( 'insert'、self.ab [y] 
                        )#コンテンツを挿入self.te.update()#コンテンツ
                        time.sleep(0.1)を更新し
ますコードをコピーします

8.コンテンツをクリアする

def clean(self):
    self.te.delete( '1.0'、t.END)#テキストボックスのすべての内容を削除する
コードをコピーする

これは達成できます。

特定の効果を見てみましょう:

このようにして、新しいリーダーを簡単に実装できました。ちなみに、1行にさらに数文字を表示する場合は、次の行の数字を変更するだけで済みます。

y%10 == 0およびy!= 0の場合:
コードをコピー

10を別の数字に変更すると、対応する長さの文字が表示されます。

/概要/

この記事では、Pythonライブラリに基づいて、視覚的なグラフィカルインターフェイスを記述し、単純な新しいリーダーを作成し、カスタム文字サイズの新しいリーダーを実現します。今日の共有は以上です。ぜひお試しください。

おすすめ

転載: blog.csdn.net/Python_sn/article/details/113108623