鱼C论坛

 找回密码
 立即注册
查看: 1213|回复: 3

pyqt 动态显示结果

[复制链接]
发表于 2018-6-6 17:16:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
代码:
from PyQt5 import QtCore, QtGui, QtWidgets
import subprocess
import time

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 600)
        self.centralWidget = QtWidgets.QWidget(MainWindow)
        self.centralWidget.setObjectName("centralWidget")

        # self.progressBar = QtWidgets.QProgressBar(self.centralWidget)
        # self.progressBar.setGeometry(QtCore.QRect(210, 100, 118, 23))
        # self.progressBar.setProperty("value", 0)
        # self.progressBar.setObjectName("progressBar")

        self.pushButton = QtWidgets.QPushButton(self.centralWidget)
        self.pushButton.setGeometry(QtCore.QRect(60, 100, 75, 23))
        self.pushButton.setObjectName("pushButton")

        self.label = QtWidgets.QLabel(self.centralWidget)
        self.label.setGeometry(QtCore.QRect(70, 210, 441, 181))
        self.label.setObjectName("label")

        MainWindow.setCentralWidget(self.centralWidget)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.pushButton.setText(_translate("MainWindow", "PushButton"))
        self.pushButton.clicked.connect(self.test)

    def test(self):
        p = subprocess.Popen(['ping', 'www.baidu.com', '-n', '4'], stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
        for line in p.stdout:
            k1 = line.decode("gb2312")
            self.label.setText(k1)
            QtWidgets.QApplication.processEvents()
            time.sleep(1)
        p = None



if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

实现的现象是一条一条的在同一位置显示,不是和命令行一样动态的全部显示,是否显示控件选错了?

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-6-6 18:56:25 | 显示全部楼层
QLabel不行,换QTextEdit
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-7 09:43:56 | 显示全部楼层
塔利班 发表于 2018-6-6 18:56
QLabel不行,换QTextEdit

是QTextEdit,而且输出的方式不对,应该是用append不应该用setText
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-7 18:24:26 | 显示全部楼层
赤怒酋长 发表于 2018-6-7 09:43
是QTextEdit,而且输出的方式不对,应该是用append不应该用setText

恩,append还是别的方法都行,QLabel不适合多行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-12-30 16:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表