亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? btdownloadgui.py

?? DELPHI實(shí)現(xiàn)的BT下載工具源代碼. 可以值得參考.
?? PY
?? 第 1 頁 / 共 2 頁
字號:
            connChoices[num]['rate']['max']/connChoices[num]['rate'].get('div',1))
        self.rateslider.SetValue (
            connChoices[num]['rate']['def']/connChoices[num]['rate'].get('div',1))
        self.rateLowerText.SetLabel ('  %d' % (connChoices[num]['rate']['min']))
        self.rateUpperText.SetLabel ('%d' % (connChoices[num]['rate']['max']))
        self.connSpinner.SetValue (connChoices[num]['conn']['def'])
        self.connSpinner.SetRange (connChoices[num]['conn']['min'],
                                   connChoices[num]['conn']['max'])
        self.connslider.SetRange (connChoices[num]['conn']['min'],
                                  connChoices[num]['conn']['max'])
        self.connslider.SetValue (connChoices[num]['conn']['def'])
        self.connLowerText.SetLabel ('  %d' % (connChoices[num]['conn']['min']))
        self.connUpperText.SetLabel ('%d' % (connChoices[num]['conn']['max']))
        self.onConnScroll (0)
        self.onRateScroll (0)
        self.dow.setInitiate (connChoices[num].get('initiate', 40))

    def about(self, event):
        if (self.aboutBox is not None):
            try:
                self.aboutBox.Close ()
            except wxPyDeadObjectError, e:
                self.aboutBox = None

        self.aboutBox = wxFrame(None, -1, 'About BitTorrent ', size = wxSize(405,230))

        panel = wxPanel(self.aboutBox, -1, size = wxSize (400,220))
        colSizer = wxFlexGridSizer(cols = 1, vgap = 3)

        titleSizer = wxBoxSizer(wxHORIZONTAL)
        aboutTitle = wxStaticText(panel, -1, 'BitTorrent ' + version)
        aboutTitle.SetFont(wxFont(14, wxNORMAL, wxNORMAL, wxNORMAL, false))
        titleSizer.Add (aboutTitle)
        linkDonate = wxStaticText(panel, -1, 'Donate to Bram', style = wxALIGN_RIGHT)
        linkDonate.SetForegroundColour('Blue');
        linkDonate.SetFont(wxFont(-1, wxNORMAL, wxNORMAL, wxNORMAL, true))
        titleSizer.Add (linkDonate, 1, wxALIGN_BOTTOM&wxEXPAND)
        colSizer.Add(titleSizer, 0, wxEXPAND)

        aboutAuthor = wxStaticText(panel, -1, 'created by Bram Cohen, Copyright 2001-2003\n')
        colSizer.Add(aboutAuthor)

        systemInformation = wxStaticText(panel, -1,
          'exact Version String: ' + version + '\n'+
          'Python version: ' + sys.version + '\n')
        colSizer.Add(systemInformation)

        babble1 = wxStaticText(panel, -1,
         'This is an experimental, unofficial build of BitTorrent.\n' +
         'It is Free Software under an MIT-Style license.')
        babble2 = wxStaticText(panel, -1,'BitTorrent Homepage')
        babble2.SetForegroundColour('Blue');
        babble2.SetFont(wxFont(-1, wxNORMAL, wxNORMAL, wxNORMAL, true))
        babble4 = wxStaticText(panel, -1,'Experimental Client Homepage')
        babble4.SetForegroundColour('Blue');
        babble4.SetFont(wxFont(-1, wxNORMAL, wxNORMAL, wxNORMAL, true))
        babble6 = wxStaticText(panel, -1, 'License Terms')
        babble6.SetForegroundColour('Blue');
        babble6.SetFont(wxFont(-1, wxNORMAL, wxNORMAL, wxNORMAL, true))
        colSizer.Add (babble1)
        colSizer.Add (babble2)
        colSizer.Add (babble4)
        colSizer.Add (babble6)

        okButton = wxButton(panel, -1, 'Ok')
        colSizer.Add(okButton, 0, wxALIGN_RIGHT)
        colSizer.AddGrowableCol(0)

        border = wxBoxSizer(wxHORIZONTAL)
        border.Add(colSizer, 1, wxEXPAND | wxALL, 4)
        panel.SetSizer(border)
        panel.SetAutoLayout(true)

        EVT_LEFT_DOWN(linkDonate, self.donatelink)
        EVT_LEFT_DOWN(babble2, self.aboutlink)
        EVT_LEFT_DOWN(babble4, self.explink)
        EVT_LEFT_DOWN(babble6, self.licenselink)
        EVT_BUTTON(self.aboutBox, okButton.GetId(), self.closeAbout)

        self.aboutBox.Show ()

    def closeAbout(self, event):
        self.aboutBox.Close ()

    def donatelink(self, event):
        Thread(target = self.donatelink2).start()

    def donatelink2(self):
        open_new('https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=bram@bitconjurer.org&item_name=BitTorrent&amount=5.00&submit=donate')

    def aboutlink(self, event):
        Thread(target = self.aboutlink2).start()

    def aboutlink2(self):
        open_new('http://bitconjurer.org/BitTorrent/')

    def explink(self, event):
        Thread(target = self.explink2).start()

    def explink2(self):
        open_new('http://ei.kefro.st/projects/btclient/')

    def licenselink(self, event):
        Thread(target = self.licenselink2).start()

    def licenselink2(self):
        open_new('http://ei.kefro.st/projects/btclient/LICENSE.TXT')

    def onInvoke(self, event):
        if not self.flag.isSet():
            apply(event.func, event.args, event.kwargs)

    def invokeLater(self, func, args = [], kwargs = {}):
        if not self.flag.isSet():
            wxPostEvent(self.frame, InvokeEvent(func, args, kwargs))

    def updateStatus(self, fractionDone = None,
            timeEst = None, downRate = None, upRate = None,
            activity=None, up = None, down = None):
        self.invokeLater(self.onUpdateStatus, [fractionDone, timeEst, downRate, upRate, activity, up, down])

    def onUpdateStatus(self, fractionDone, timeEst, downRate, upRate, activity, up, down):
        if fractionDone is not None and not self.fin:
            self.gauge.SetValue(int(fractionDone * 1000))
            self.frame.SetTitle('%d%% %s - BitTorrent %s' % (int(fractionDone*100), self.filename, version))
        if timeEst is not None:
            self.timeEstText.SetLabel(hours(timeEst))
        if activity is not None and not self.fin:
            self.timeEstText.SetLabel(activity)
        if downRate is not None:
            self.downRateText.SetLabel('%.0f kB/s' % (float(downRate) / (1000)))
        if upRate is not None:
            self.upRateText.SetLabel('%.0f kB/s' % (float(upRate) / (1000)))
        if down is not None:
            self.downText.SetLabel('%.2f MiB' % (float(down) / (1 << 20)))
        if up is not None:
            self.upText.SetLabel('%.2f MiB' % (float(up) / (1 << 20)))

    def finished(self):
        self.fin = true
        self.invokeLater(self.onFinishEvent)

    def failed(self):
        self.fin = true
        self.invokeLater(self.onFailEvent)

    def error(self, errormsg):
        self.invokeLater(self.onErrorEvent, [errormsg])

    def onFinishEvent(self):
        self.timeEstText.SetLabel('Download Succeeded!')
        self.cancelButton.SetLabel('Finish')
        self.gauge.SetValue(1000)
        self.frame.SetTitle('%s - Upload - BitTorrent %s' % (self.filename, version))
        self.downRateText.SetLabel('')

    def onFailEvent(self):
        self.timeEstText.SetLabel('Failed!')
        self.cancelButton.SetLabel('Close')
        self.gauge.SetValue(0)
        self.downRateText.SetLabel('')

    def onErrorEvent(self, errormsg):
        self.errorText.SetLabel(strftime('ERROR (%I:%M %p) -\n') + errormsg)

    def chooseFile(self, default, size, saveas, dir):
        f = Event()
        bucket = [None]
        self.invokeLater(self.onChooseFile, [default, bucket, f, size, dir])
        f.wait()
        return bucket[0]
    
    def onChooseFile(self, default, bucket, f, size, dir):
        if dir:
            dl = wxDirDialog(self.frame, 'Choose a directory to save to, pick a partial download to resume', 
                join(getcwd(), default), style = wxDD_DEFAULT_STYLE | wxDD_NEW_DIR_BUTTON)
        else:
            dl = wxFileDialog(self.frame, 'Choose file to save as, pick a partial download to resume', '', default, '*.*', wxSAVE)
        if dl.ShowModal() != wxID_OK:
            self.done(None)
        else:
            bucket[0] = dl.GetPath()
            self.fileNameText.SetLabel('%s (%.1f MB)' % (default, float(size) / (1 << 20)))
            self.timeEstText.SetLabel('Starting up...')
            self.fileDestText.SetLabel(dl.GetPath())
            self.filename = default
            self.frame.SetTitle(default + '- BitTorrent ' + version)
        f.set()

    def newpath(self, path):
        self.fileDestText.SetLabel(path)

    def done(self, event):
        self.flag.set()
        self.frame.Destroy()

class btWxApp(wxApp):
    def __init__(self, x, params):
        self.params = params
        wxApp.__init__(self, x)

    def OnInit(self):
        doneflag = Event()
        d = DownloadInfoFrame(doneflag)
        self.SetTopWindow(d.frame)
        thread = Thread(target = next, args = [self.params, d, doneflag])
        thread.setDaemon(false)
        thread.start()
        return 1

def run(params):
    app = btWxApp(0, params)
    app.MainLoop()

def next(params, d, doneflag):
    dow = Download ()
    d.dow = dow
    dow.download(params, d.chooseFile, d.updateStatus, d.finished, d.error, doneflag, 100, d.newpath)
    if not d.fin:
        d.failed()

if __name__ == '__main__':
    run(argv[1:])

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本一区免费视频| 91.成人天堂一区| 中文字幕欧美三区| 国产精品88888| 国产日韩欧美精品在线| 成人黄动漫网站免费app| 国产精品久久久久四虎| 99精品久久99久久久久| 一区二区三区在线播| 欧美日韩三级视频| 蜜臀久久99精品久久久久宅男| 精品国精品国产尤物美女| 国产成人亚洲精品狼色在线| 亚洲日本青草视频在线怡红院| 色欧美片视频在线观看在线视频| 亚洲精品国产一区二区三区四区在线| 欧美在线看片a免费观看| 日本一区中文字幕| 国产女人aaa级久久久级| caoporen国产精品视频| 亚洲成av人在线观看| 精品sm在线观看| 91性感美女视频| 蜜桃视频在线观看一区| 国产欧美日韩三级| 欧美美女直播网站| 国产乱子轮精品视频| 一区二区三区四区五区视频在线观看| 7777精品伊人久久久大香线蕉| 韩国女主播成人在线| 国产精品成人网| 91精品国产aⅴ一区二区| 成人免费视频播放| 日韩中文字幕一区二区三区| 亚洲国产成人自拍| 日韩一区二区影院| 99精品黄色片免费大全| 久久精品国产色蜜蜜麻豆| 亚洲色图欧洲色图| 久久综合五月天婷婷伊人| 欧美性三三影院| 国产精品主播直播| 婷婷六月综合亚洲| 亚洲欧洲日韩一区二区三区| 欧美一区二区三区四区高清| 91一区在线观看| 国产精品一区二区久激情瑜伽| 一区二区三区电影在线播| 久久久久久久av麻豆果冻| 精品视频1区2区3区| fc2成人免费人成在线观看播放| 蜜臀国产一区二区三区在线播放| 一区二区免费看| 国产精品视频观看| 精品久久一二三区| 欧美另类z0zxhd电影| voyeur盗摄精品| 国产成人啪免费观看软件| 奇米亚洲午夜久久精品| 亚洲一区二区不卡免费| 17c精品麻豆一区二区免费| 精品999在线播放| 欧美一区二区久久| 欧美日韩国产综合久久| 91蜜桃网址入口| 99re66热这里只有精品3直播 | 国产69精品一区二区亚洲孕妇| 日精品一区二区三区| 伊人开心综合网| 国产精品国产馆在线真实露脸| 久久久777精品电影网影网| 精品福利一二区| 欧美大胆一级视频| 欧美一级二级三级乱码| 91精品国产全国免费观看| 欧美高清视频在线高清观看mv色露露十八 | 国产日韩欧美亚洲| 国产午夜亚洲精品羞羞网站| 2024国产精品| 久久久国产精品不卡| 精品久久久三级丝袜| 精品国产电影一区二区| 久久影院午夜片一区| 久久精品一区八戒影视| 久久久美女毛片| 国产精品乱码一区二区三区软件 | 国产乱人伦精品一区二区在线观看 | 成人一级视频在线观看| 国产成人精品亚洲日本在线桃色 | 婷婷久久综合九色综合伊人色| 亚洲高清久久久| 午夜精品福利视频网站| 日韩国产在线观看| 国产精品一区在线观看你懂的| 国产盗摄精品一区二区三区在线| 高清不卡一区二区在线| 99久精品国产| 欧美亚洲高清一区| 日韩欧美国产三级| 国产精品私人自拍| 亚洲成人av在线电影| 青青草一区二区三区| 国产成人久久精品77777最新版本| 成人美女视频在线看| 色欧美88888久久久久久影院| 欧美日韩中文另类| 精品国产伦一区二区三区观看体验| 久久久91精品国产一区二区精品 | 久久久美女艺术照精彩视频福利播放| 国产欧美日韩三级| 亚洲小说春色综合另类电影| 美腿丝袜亚洲一区| 成人午夜激情影院| 欧美精品第1页| 国产亚洲精品免费| 亚洲一区二区三区影院| 久久99精品久久久| 91视频在线看| 7777精品伊人久久久大香线蕉超级流畅 | 91精品国产麻豆| 欧美国产日韩亚洲一区| 亚洲图片一区二区| 国产福利一区二区三区| 欧美日韩国产免费一区二区 | 国产精品中文字幕日韩精品| 一道本成人在线| 欧美成人高清电影在线| 亚洲欧美日韩电影| 久久99久久99| 欧美亚洲动漫精品| 国产精品水嫩水嫩| 蜜臀a∨国产成人精品| 91美女在线观看| 国产人成亚洲第一网站在线播放| 亚洲成人高清在线| 99re在线精品| 欧美国产乱子伦 | 亚洲视频一区二区在线| 麻豆极品一区二区三区| 欧美性猛片aaaaaaa做受| 国产亲近乱来精品视频| 美女性感视频久久| 欧美日韩一级大片网址| 亚洲日本在线观看| 成人综合在线网站| 久久亚洲捆绑美女| 免费成人在线影院| 欧美日韩国产综合一区二区| 亚洲欧美色综合| 成人ar影院免费观看视频| 久久色.com| 青青草伊人久久| 欧美精品tushy高清| 一区二区三区四区不卡在线| www.欧美日韩| 国产精品久久精品日日| 国产成人综合亚洲91猫咪| 日韩欧美色综合| 日本人妖一区二区| 91麻豆精品91久久久久同性| 亚洲国产aⅴ天堂久久| 在线观看欧美日本| 一区二区成人在线| 色天使色偷偷av一区二区| 日韩理论电影院| 91麻豆福利精品推荐| 亚洲欧美日韩国产综合| 色综合久久精品| 一区二区三区精品视频| 色哟哟国产精品| 亚洲黄一区二区三区| 日本韩国精品在线| 亚洲图片欧美色图| 欧美精品一二三| 日韩av网站免费在线| 日韩欧美中文字幕制服| 老司机午夜精品99久久| 欧美va日韩va| 国产一区二区电影| 国产精品每日更新在线播放网址 | 狠狠狠色丁香婷婷综合久久五月| 欧美zozo另类异族| 国产寡妇亲子伦一区二区| 亚洲国产成人自拍| 99精品欧美一区| 亚洲精品水蜜桃| 欧美精品v国产精品v日韩精品 | 久久99国产精品久久| 久久婷婷国产综合国色天香| 成人伦理片在线| 中文字幕在线观看一区| 欧洲国产伦久久久久久久| 午夜国产精品一区| 精品福利一二区| 不卡在线观看av| 亚洲高清在线精品| 精品粉嫩aⅴ一区二区三区四区| 国产91对白在线观看九色| 一区二区三区成人在线视频| 日韩精品专区在线影院重磅|