pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

<tfoot id='IjWQg'></tfoot>

        <bdo id='IjWQg'></bdo><ul id='IjWQg'></ul>

    1. <i id='IjWQg'><tr id='IjWQg'><dt id='IjWQg'><q id='IjWQg'><span id='IjWQg'><b id='IjWQg'><form id='IjWQg'><ins id='IjWQg'></ins><ul id='IjWQg'></ul><sub id='IjWQg'></sub></form><legend id='IjWQg'></legend><bdo id='IjWQg'><pre id='IjWQg'><center id='IjWQg'></center></pre></bdo></b><th id='IjWQg'></th></span></q></dt></tr></i><div class="trpx7th" id='IjWQg'><tfoot id='IjWQg'></tfoot><dl id='IjWQg'><fieldset id='IjWQg'></fieldset></dl></div>
      <legend id='IjWQg'><style id='IjWQg'><dir id='IjWQg'><q id='IjWQg'></q></dir></style></legend>

    2. <small id='IjWQg'></small><noframes id='IjWQg'>

      線程實(shí)時(shí)記錄

      Threads real-time logging(線程實(shí)時(shí)記錄)
      <i id='W3ZC6'><tr id='W3ZC6'><dt id='W3ZC6'><q id='W3ZC6'><span id='W3ZC6'><b id='W3ZC6'><form id='W3ZC6'><ins id='W3ZC6'></ins><ul id='W3ZC6'></ul><sub id='W3ZC6'></sub></form><legend id='W3ZC6'></legend><bdo id='W3ZC6'><pre id='W3ZC6'><center id='W3ZC6'></center></pre></bdo></b><th id='W3ZC6'></th></span></q></dt></tr></i><div class="vttdlrn" id='W3ZC6'><tfoot id='W3ZC6'></tfoot><dl id='W3ZC6'><fieldset id='W3ZC6'></fieldset></dl></div>
        <bdo id='W3ZC6'></bdo><ul id='W3ZC6'></ul>

        <small id='W3ZC6'></small><noframes id='W3ZC6'>

        <legend id='W3ZC6'><style id='W3ZC6'><dir id='W3ZC6'><q id='W3ZC6'></q></dir></style></legend>
            <tbody id='W3ZC6'></tbody>

          <tfoot id='W3ZC6'></tfoot>

                本文介紹了線程實(shí)時(shí)記錄的處理方法,對大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

                問題描述

                我正在編寫一個(gè)用于調(diào)整照片大小的簡單腳本.我想要一個(gè)帶有文本字段的小部件,在調(diào)整每個(gè)文件大小后會在其中顯示消息.

                I'm writing a simple script for resizing photos. I'd like to have a widget with text-field in which messages appear after resizing each file.

                #!/usr/bin/python3
                # -*- coding: utf-8 -*-
                
                import time, sys
                from PyQt5.QtCore import pyqtSignal, QThread
                from PyQt5.QtWidgets import QApplication, QPushButton, QTextEdit, QWidget, QVBoxLayout
                
                class Thread(QThread):
                    log = pyqtSignal(str)
                    def __init__(self, parent=None):
                        super(Thread, self).__init__(parent)
                    def test(self, i):
                        time.sleep(1)
                        self.log.emit(str(i))
                
                class Widget(QWidget):
                    def __init__(self):
                        super().__init__()
                        self.ui()
                    def process(self):
                        self.toLog('some text...')
                        worker = Thread()
                        worker.log.connect(self.toLog)
                        for i in range(1, 5):
                            worker.test(i)
                    def ui(self):
                        self.LogOutputTxt = QTextEdit()
                        self.LogOutputTxt.setReadOnly(True)
                        startBtn = QPushButton('Start')
                        startBtn.clicked.connect(self.start)
                        layout = QVBoxLayout()
                        layout.addWidget(self.LogOutputTxt)
                        layout.addWidget(startBtn)
                        self.setLayout(layout)
                        self.resize(400, 300)
                        self.show()
                    def start(self):
                        self.toLog('start')
                        self.process()
                    def toLog(self, txt):
                        self.LogOutputTxt.append(txt)
                
                if __name__ == '__main__':
                    app = QApplication(sys.argv)
                    ui = Widget()
                    sys.exit(app.exec_())
                

                到目前為止,在調(diào)整所有文件大小后,所有消息都會立即顯示.有沒有辦法一一做到(我的意思是文件大小調(diào)整、消息顯示等)?

                So far all the messages appear at once after all files are resized. Is there any way to do it one by one (I mean file resized, message displayed, etc.)?

                推薦答案

                下面是你想要的腳本的重寫.

                Below is a re-write of your script that should do want you want.

                但請注意,這非常簡單,并且不會太努力地確保線程安全.setItems 方法只是制作傳遞給它的數(shù)據(jù)的淺表副本 - 這僅適用于不可變對象列表.您還必須確保您永遠(yuǎn)不會在工作線程中執(zhí)行任何 gui 操作,其中包括對像素圖的操作.如果要操作圖像,請使用 QImage.(如果您想知道如何停止正在運(yùn)行的線程,請參閱例如 this answer).

                But note that this is quite simplistic, and doesn't try too hard to ensure thread-safety. The setItems method just makes a shallow copy of the data passed to it - which is only really okay for a list of immutable objects. You also must make sure you never do any gui operations inside the worker thread, which includes operations on pixmaps. If you want to manipulate images, use QImage. (And if you want to know how to stop a running thread, see for example this answer).

                #!/usr/bin/python3
                # -*- coding: utf-8 -*-
                
                import time, sys
                from PyQt5.QtCore import pyqtSignal, QThread
                from PyQt5.QtWidgets import (
                    QApplication, QPushButton, QTextEdit, QWidget, QVBoxLayout
                    )
                
                class Thread(QThread):
                    log = pyqtSignal(str)
                
                    def __init__(self, parent=None):
                        super(Thread, self).__init__(parent)
                        self._items = []
                
                    def setItems(self, items):
                        if not self.isRunning():
                            self._items[:] = items
                
                    def run(self):
                        for item in self._items:
                            time.sleep(1)
                            self.log.emit('processing: %s' % item)
                
                class Widget(QWidget):
                    def __init__(self):
                        super().__init__()
                        self.ui()
                        self._worker = Thread(self)
                        self._worker.log.connect(self.toLog)
                        self._worker.started.connect(lambda: self.toLog('start'))
                        self._worker.finished.connect(lambda: self.toLog('finished'))
                
                    def process(self):
                        items = ['Image%02d.png' % i for i in range(10)]
                        self._worker.setItems(items)
                        self._worker.start()
                
                    def ui(self):
                        self.LogOutputTxt = QTextEdit()
                        self.LogOutputTxt.setReadOnly(True)
                        startBtn = QPushButton('Start')
                        startBtn.clicked.connect(self.start)
                        layout = QVBoxLayout()
                        layout.addWidget(self.LogOutputTxt)
                        layout.addWidget(startBtn)
                        self.setLayout(layout)
                        self.resize(400, 300)
                        self.show()
                
                    def start(self):
                        if not self._worker.isRunning():
                            self.process()
                
                    def toLog(self, txt):
                        self.LogOutputTxt.append(txt)
                
                if __name__ == '__main__':
                
                    app = QApplication(sys.argv)
                    ui = Widget()
                    sys.exit(app.exec_())
                

                這篇關(guān)于線程實(shí)時(shí)記錄的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

                【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

                相關(guān)文檔推薦

                How to bind a function to an Action from Qt menubar?(如何將函數(shù)綁定到 Qt 菜單欄中的操作?)
                PyQt progress jumps to 100% after it starts(PyQt 啟動后進(jìn)度躍升至 100%)
                How to set yaxis tick label in a fixed position so that when i scroll left or right the yaxis tick label should be visible?(如何將 yaxis 刻度標(biāo)簽設(shè)置在固定位置,以便當(dāng)我向左或向右滾動時(shí),yaxis 刻度標(biāo)簽應(yīng)該可見
                `QImage` constructor has unknown keyword `data`(`QImage` 構(gòu)造函數(shù)有未知關(guān)鍵字 `data`)
                Change x-axis ticks to custom strings(將 x 軸刻度更改為自定義字符串)
                How to show progress bar while saving file to excel in python?(如何在python中將文件保存為excel時(shí)顯示進(jìn)度條?)
                <i id='61jFR'><tr id='61jFR'><dt id='61jFR'><q id='61jFR'><span id='61jFR'><b id='61jFR'><form id='61jFR'><ins id='61jFR'></ins><ul id='61jFR'></ul><sub id='61jFR'></sub></form><legend id='61jFR'></legend><bdo id='61jFR'><pre id='61jFR'><center id='61jFR'></center></pre></bdo></b><th id='61jFR'></th></span></q></dt></tr></i><div class="bplpvfl" id='61jFR'><tfoot id='61jFR'></tfoot><dl id='61jFR'><fieldset id='61jFR'></fieldset></dl></div>
                  <tfoot id='61jFR'></tfoot>

                  1. <legend id='61jFR'><style id='61jFR'><dir id='61jFR'><q id='61jFR'></q></dir></style></legend>
                      • <bdo id='61jFR'></bdo><ul id='61jFR'></ul>

                      • <small id='61jFR'></small><noframes id='61jFR'>

                            <tbody id='61jFR'></tbody>

                        • 主站蜘蛛池模板: 「钾冰晶石」氟铝酸钾_冰晶石_氟铝酸钠「价格用途」-亚铝氟化物厂家 | 膏剂灌装旋盖机-眼药水灌装生产线-西林瓶粉剂分装机-南通博琅机械科技 | 天空彩票天下彩,天空彩天空彩票免费资料,天空彩票与你同行开奖,天下彩正版资料大全 | 电动卫生级调节阀,电动防爆球阀,电动软密封蝶阀,气动高压球阀,气动对夹蝶阀,气动V型调节球阀-上海川沪阀门有限公司 | 电杆荷载挠度测试仪-电杆荷载位移-管桩测试仪-北京绿野创能机电设备有限公司 | 校车_校车价格_19座幼儿园校车_幼儿园校车_大鼻子校车 | 杭州货架订做_组合货架公司_货位式货架_贯通式_重型仓储_工厂货架_货架销售厂家_杭州永诚货架有限公司 | 橡胶弹簧|复合弹簧|橡胶球|振动筛配件-新乡市永鑫橡胶厂 | 全自动烧卖机厂家_饺子机_烧麦机价格_小笼汤包机_宁波江北阜欣食品机械有限公司 | 产业规划_产业园区规划-产业投资选址及规划招商托管一体化服务商-中机院产业园区规划网 | 户外-组合-幼儿园-不锈钢-儿童-滑滑梯-床-玩具-淘气堡-厂家-价格 | 电抗器-能曼电气-电抗器专业制造商| Trimos测长机_测高仪_TESA_mahr,WYLER水平仪,PWB对刀仪-德瑞华测量技术(苏州)有限公司 | 超声波成孔成槽质量检测仪-压浆机-桥梁预应力智能张拉设备-上海硕冠检测设备有限公司 | 正压送风机-多叶送风口-板式排烟口-德州志诺通风设备 | 东莞工厂厂房装修_无尘车间施工_钢结构工程安装-广东集景建筑装饰设计工程有限公司 | 破碎机锤头_合金耐磨锤头_郑州宇耐机械工程技术有限公司 | 除尘布袋_液体过滤袋_针刺毡滤料-杭州辉龙过滤技术有限公司 | YT保温材料_YT无机保温砂浆_外墙保温材料_南阳银通节能建材高新技术开发有限公司 | 科昊仪器超纯水机系统-可成气相液氮罐-美菱超低温冰箱-西安昊兴生物科技有限公司 | 洗瓶机厂家-酒瓶玻璃瓶冲瓶机-瓶子烘干机-封口旋盖压盖打塞机_青州惠联灌装机械 | 【法利莱住人集装箱厂家】—活动集装箱房,集装箱租赁_大品牌,更放心 | 小威小说网 - 新小威小说网 - 小威小说网小说搜索引擎 | 找果网 | 苹果手机找回方法,苹果iPhone手机丢了找回,认准找果网! | 螺杆泵_中成泵业| 垃圾清运公司_环卫保洁公司_市政道路保洁公司-华富环境 | 优考试_免费在线考试系统_培训考试系统_题库系统_组卷答题系统_匡优考试 | 山东螺杆空压机,烟台空压机,烟台开山空压机-烟台开山机电设备有限公司 | DWS物流设备_扫码称重量方一体机_快递包裹分拣机_广东高臻智能装备有限公司 | 美国HASKEL增压泵-伊莱科elettrotec流量开关-上海方未机械设备有限公司 | 空压机网_《压缩机》杂志| 冷轧机|两肋冷轧机|扁钢冷轧机|倒立式拉丝机|钢筋拔丝机|收线机-巩义市华瑞重工机械制造有限公司 | 真空包装机-诸城市坤泰食品机械有限公司 | 北京网站建设公司_北京网站制作公司_北京网站设计公司-北京爱品特网站建站公司 | 高压绝缘垫-红色配电房绝缘垫-绿色高压绝缘地毯-上海苏海电气 | IWIS链条代理-ALPS耦合透镜-硅烷预处理剂-上海顶楚电子有限公司 lcd条形屏-液晶长条屏-户外广告屏-条形智能显示屏-深圳市条形智能电子有限公司 | 截齿|煤截齿|采煤机截齿|掘进机截齿|旋挖截齿-山东卓力截齿厂家报价 | 鑫铭东办公家具一站式定制采购-深圳办公家具厂家直销 | 发电机组|柴油发电机组-批发,上柴,玉柴,潍柴,康明斯柴油发电机厂家直销 | 泰国试管婴儿_泰国第三代试管婴儿_泰国试管婴儿费用/多少钱_孕泰来 | 论文查重_免费论文查重_知网学术不端论文查重检测系统入口_论文查重软件 |