亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

嘗試做一個文本文件查看器

嘗試做一個文本文件查看器

米脂 2022-07-26 15:43:00
我正在嘗試使用 Python 和 wxWidgets 構建一個簡約的文本文件編輯器。這是我第一次構建圖形用戶界面。我想構建一個簡單的窗口,在啟動時將打開并顯示文件上的內容1.txt。單擊“下一步”按鈕時,編輯器應顯示2.txt文件的內容。我制作了以下程序,它成功地顯示了我想要的窗口和小部件,但無法打開文本文件并正確顯示它們。有問題的行已經被注釋掉了,我用 aprint()來顯示打開文件的內容。不僅print()顯示一個空字符串,而且似乎沒有考慮到點擊按鈕的事件。這是我的代碼:#!/usr/bin/env python3import wximport wx.lib.editor as editorclass Editor(wx.App):    filecounter = 1    def __init__(self):        wx.App.__init__(self, redirect=False)    def OnInit(self):        frame = wx.Frame(            None,            -1,            "blabla",            size=(200, 100),            style=wx.DEFAULT_FRAME_STYLE,            name="wsfacile editor",        )        frame.Show(True)        frame.Bind(wx.EVT_CLOSE, self.OnCloseFrame)        win = self.EditWindow(frame)        if win:            frame.SetSize((800, 600))            win.SetFocus()            self.window = win            frect = frame.GetRect()        else:            frame.Destroy()            return True        self.SetTopWindow(frame)        self.frame = frame        return True    def OnExitApp(self, evt):        self.frame.Close(True)    def OnCloseFrame(self, evt):        evt.Skip()    def GetNextFile(self):        self.filecounter += 1        # self.ed.SetText(self.GetFileText(str(self.filecounter) + ".txt"))        print(self.GetFileText(str(self.filecounter) + ".txt"))    def GetFileText(self, filename):        with open(filename, "r") as myfile:            result = myfile.readlines()            myfile.close()        return result    def EditWindow(self, frame):        win = wx.Panel(frame, -1)        self.ed = editor.Editor(win, -1, style=wx.SUNKEN_BORDER)        next_button = wx.Button(win, 0, "Next")        box = wx.BoxSizer(wx.VERTICAL)        box.Add(self.ed, 1, wx.ALL | wx.GROW, 1)        box.Add(next_button, 0, wx.ALIGN_CENTER, 0)        self.Bind(wx.EVT_BUTTON, self.GetNextFile())        win.SetSizer(box)        win.SetAutoLayout(True)        # self.ed.SetText(self.GetFileText(str(self.filecounter) + ".txt"))        return win
查看完整描述

1 回答

?
GCT1015

TA貢獻1827條經驗 獲得超4個贊

        self.Bind(wx.EVT_BUTTON, self.GetNextFile())

是錯誤的,它調用函數而不是將其設置為處理程序。您應該刪除().


查看完整回答
反對 回復 2022-07-26
  • 1 回答
  • 0 關注
  • 82 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號