日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python - pyqt多線程問題實在不是很明白。。求解。。

瀏覽:294日期:2022-06-29 10:23:09

問題描述

from PyQt5 import QtCore, QtGui, QtWidgetsclass Ui_MainWindow(object): def setupUi(self, MainWindow):MainWindow.setObjectName('MainWindow')MainWindow.resize(382, 500)MainWindow.setMinimumSize(QtCore.QSize(382, 500))MainWindow.setMaximumSize(QtCore.QSize(382, 500))self.centralwidget = QtWidgets.QWidget(MainWindow)self.centralwidget.setObjectName('centralwidget')self.label = QtWidgets.QLabel(self.centralwidget)self.label.setGeometry(QtCore.QRect(30, 40, 18, 12))self.label.setObjectName('label')self.label_2 = QtWidgets.QLabel(self.centralwidget)self.label_2.setGeometry(QtCore.QRect(200, 30, 51, 31))self.label_2.setObjectName('label_2')self.label_3 = QtWidgets.QLabel(self.centralwidget)self.label_3.setGeometry(QtCore.QRect(20, 80, 30, 12))self.label_3.setObjectName('label_3')self.label_4 = QtWidgets.QLabel(self.centralwidget)self.label_4.setGeometry(QtCore.QRect(200, 70, 51, 31))self.label_4.setObjectName('label_4')self.pushButton = QtWidgets.QPushButton(self.centralwidget)self.pushButton.setGeometry(QtCore.QRect(290, 430, 71, 41))self.pushButton.setObjectName('pushButton')self.rz = QtWidgets.QTextEdit(self.centralwidget)self.rz.setGeometry(QtCore.QRect(10, 290, 200, 191))self.rz.setObjectName('rz')self.label_5 = QtWidgets.QLabel(self.centralwidget)self.label_5.setGeometry(QtCore.QRect(110, 120, 81, 31))self.label_5.setObjectName('label_5')self.label_6 = QtWidgets.QLabel(self.centralwidget)self.label_6.setGeometry(QtCore.QRect(110, 190, 81, 31))self.label_6.setObjectName('label_6')self.label_7 = QtWidgets.QLabel(self.centralwidget)self.label_7.setGeometry(QtCore.QRect(110, 240, 81, 31))self.label_7.setObjectName('label_7')self.groupBox = QtWidgets.QGroupBox(self.centralwidget)self.groupBox.setGeometry(QtCore.QRect(10, 110, 91, 161))self.groupBox.setObjectName('groupBox')self.xz = QtWidgets.QRadioButton(self.groupBox)self.xz.setGeometry(QtCore.QRect(10, 120, 89, 16))self.xz.setObjectName('xz')self.sc = QtWidgets.QRadioButton(self.groupBox)self.sc.setGeometry(QtCore.QRect(10, 70, 89, 16))self.sc.setObjectName('sc')self.zx = QtWidgets.QRadioButton(self.groupBox)self.zx.setGeometry(QtCore.QRect(10, 20, 89, 16))self.zx.setObjectName('zx')self.IP = QtWidgets.QLineEdit(self.centralwidget)self.IP.setGeometry(QtCore.QRect(60, 29, 131, 31))self.IP.setObjectName('IP')self.dk = QtWidgets.QLineEdit(self.centralwidget)self.dk.setGeometry(QtCore.QRect(230, 30, 61, 31))self.dk.setObjectName('dk')self.zh = QtWidgets.QLineEdit(self.centralwidget)self.zh.setGeometry(QtCore.QRect(60, 70, 131, 31))self.zh.setObjectName('zh')self.mm = QtWidgets.QLineEdit(self.centralwidget)self.mm.setGeometry(QtCore.QRect(230, 70, 131, 31))self.mm.setObjectName('mm')self.mm.setEchoMode(QtWidgets.QLineEdit.Password)self.ml = QtWidgets.QTextEdit(self.centralwidget)self.ml.setGeometry(QtCore.QRect(180, 120, 181, 61))self.ml.setObjectName('ml')self.bd = QtWidgets.QLineEdit(self.centralwidget)self.bd.setGeometry(QtCore.QRect(180, 190, 181, 31))self.bd.setObjectName('bd')self.yc = QtWidgets.QLineEdit(self.centralwidget)self.yc.setGeometry(QtCore.QRect(180, 240, 181, 31))self.label_8 = QtWidgets.QLabel(self.centralwidget)self.label_8.setGeometry(QtCore.QRect(280, 380, 81, 21))self.label_8.setStyleSheet('color: rgb(255, 0, 0);')self.label_8.setObjectName('label_8')self.yc.setObjectName('yc')self.zx.setChecked(True)self.dk.setText('22')self.zh.setText('root')self.bd.setEnabled(False)self.yc.setEnabled(False)MainWindow.setCentralWidget(self.centralwidget)self.retranslateUi(MainWindow)self.zx.clicked.connect(self.zxml)self.sc.clicked.connect(self.sx)self.xz.clicked.connect(self.sx)self.pushButton.clicked.connect(self.linux)QtCore.QMetaObject.connectSlotsByName(MainWindow) def zxml(self):self.bd.setEnabled(False)self.yc.setEnabled(False)self.ml.setEnabled(True) def sx(self):self.bd.setEnabled(True)self.yc.setEnabled(True)self.ml.setEnabled(False) def linux(self):import osimport sysaa=os.path.split(os.path.realpath(sys.argv[0]))self.rz.setText('')dk=int(self.dk.text())zh=self.zh.text()mm=self.mm.text()ml=self.ml.toPlainText()if os.path.exists(aa[0]+'/log.txt'): os.remove(aa[0]+'/log.txt')if self.mm.text()=='' and self.IP.text()=='': self.label_8.setText('密碼不能為空!')elif self.IP.text()=='': self.label_8.setText('IP不能為空!')else: a = self.IP.text() self.label_8.setText('') def hanshu(b):import paramiko #paramiko.util.log_to_file('c:/paramiko.log') ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())try: ssh.connect(b, dk, zh, mm,timeout=3) QApplication.processEvents() if self.zx.isChecked()==True:stdin, stdout, stderr = ssh.exec_command(ml)#執(zhí)行命令行self.rz.setText(self.rz.toPlainText()+b+'執(zhí)行成功'+'n')###多線程時這條執(zhí)行不了,報錯。。print('a')with open(aa[0]+'/log.txt', ’a’) as f: f.write(stdout.read().decode(’utf-8’)+'n')ssh.close() elif self.sc.isChecked()==True:ftp = ssh.open_sftp() ftp.put(self.bd.text(),self.yc.text())#上傳文件self.rz.setText(self.rz.toPlainText()+b+'執(zhí)行成功'+'n')###多線程時這條執(zhí)行不了,報錯。。with open(aa[0]+'/log.txt', ’a’) as f: f.write('執(zhí)行成功n')ftp.close() ssh.close() elif self.xz.isChecked()==True:ftp = ssh.open_sftp() ftp.get(self.yc.text(),self.bd.text())#下載文件self.rz.setText(self.rz.toPlainText()+b+'執(zhí)行成功'+'n')###多線程時這條執(zhí)行不了,報錯。。with open(aa[0]+'/log.txt', ’a’) as f: f.write('執(zhí)行成功n')ftp.close() ssh.close()except: print (b+'無法連接'+'n') self.rz.setText(self.rz.toPlainText()+b+'無法連接'+'n')###多線程時這條執(zhí)行不了,報錯。。 with open(aa[0]+'/log.txt', ’a’) as f:f.write(b+'無法連接'+'n'+'n') sz=[] for ip in a.split(’,’):if ’-’ in ip: s1, s2 = ip.rsplit(’.’, 1) start, end = map(int, s2.split(’-’)) for num in range(start, end+1):r=s1+’.’+str(num)sz.append(r)#aa=threading.Thread(target=hanshu,args=(b,))#aa.start()#hanshu(b)else: sz.append(r) #hanshu(ip) import threading for b in sz:print(b)t=threading.Thread(target=hanshu,args=(b,))t.start() def retranslateUi(self, MainWindow):_translate = QtCore.QCoreApplication.translateMainWindow.setWindowTitle(_translate('MainWindow', 'Linux管理工具'))self.label.setText(_translate('MainWindow', 'IP:'))self.label_2.setText(_translate('MainWindow', '端口:'))self.label_3.setText(_translate('MainWindow', '賬號:'))self.label_4.setText(_translate('MainWindow', '密碼:'))self.pushButton.setText(_translate('MainWindow', '執(zhí)行'))self.label_5.setText(_translate('MainWindow', '輸入命令:'))self.label_6.setText(_translate('MainWindow', '本地路徑:'))self.label_7.setText(_translate('MainWindow', '遠程路徑:'))self.groupBox.setTitle(_translate('MainWindow', '操作:'))self.xz.setText(_translate('MainWindow', '下載文件'))self.sc.setText(_translate('MainWindow', '上傳文件'))self.zx.setText(_translate('MainWindow', '執(zhí)行命令'))from PyQt5.QtWidgets import QApplication , QMainWindowimport sysif __name__ == ’__main__’: app = QApplication(sys.argv) mainWindow = QMainWindow() ui = Ui_MainWindow() ui.setupUi(mainWindow) mainWindow.show() sys.exit(app.exec_())

錯誤信息如下:`QObject: Cannot create children for a parent that is in a different thread.(Parent is QTextDocument(0x27e4150), parent’s thread is QThread(0xc306a0), current thread is QThread(0xc0eca0)`

求大神幫修改一下多線程或者指證一下,只想讓他把日志輸出到文本框中。。。

問題解答

回答1:

def hanshu(b)這里面不對吧,在這里面可以引用self.xxx嗎?你得以這樣的形式傳值進來,def hanshu(xx,yy,b)然后再試試,用的時候就是hanshu(self.xx,self.yy,b),明白我的意思嗎?

回答2:

提示很清楚非GUI線程操作GUI線程的元素了這個在QT里是非線程安全的你要想非GUI線程操作GUI線程,應該用signal slot

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
а√天堂8资源在线| 欧美不卡高清一区二区三区| 中文在线а√在线8| 国产精品三p一区二区| 亚洲人成亚洲精品| 91综合久久爱com| 日韩精品电影| 在线亚洲成人| 日韩黄色大片| 综合亚洲色图| 日韩激情综合| 日韩av一区二区三区四区| 日韩精品久久理论片| 日本午夜精品久久久久| 国产精品第十页| 国产成人精品一区二区三区视频| 久久99高清| 久久久久网站| 亚洲一区欧美激情| 日韩专区一卡二卡| 日韩不卡手机在线v区| 国产日韩在线观看视频| 日本免费在线视频不卡一不卡二| 欧美性www| 久久久久久一区二区| 久久久人人人| 综合国产在线| 国产精品宾馆| 欧美日韩一二三四| 在线精品国产亚洲| 欧美国产中文高清| 欧美日韩精品免费观看视完整| 一区免费在线| 日韩精彩视频在线观看| 久久久久亚洲精品中文字幕| 色婷婷狠狠五月综合天色拍| 久久国产成人| 国产日本精品| 日韩电影免费网站| 日韩在线卡一卡二| 国产中文欧美日韩在线| 国户精品久久久久久久久久久不卡 | 999久久久精品国产| 亚洲精选成人| 亚洲手机在线| 国产a亚洲精品| 国产福利资源一区| 欧美精品中文| 日韩精品免费观看视频| 日韩综合一区二区| 欧美一级二级视频| 老司机精品久久| 婷婷综合社区| 久久国内精品视频| 中文字幕成人| 日韩精品免费视频人成| 国产成人精选| 亚洲五月婷婷| 欧美日韩国产亚洲一区| 欧美日韩国产传媒| 久久伊人亚洲| 午夜亚洲福利| 99久久激情| 国产福利一区二区精品秒拍| 日韩精品免费视频人成 | 欧美网站在线| 国产精品网址| 欧美高清一区| 国产精品欧美日韩一区| 婷婷色综合网| 麻豆久久一区| 蜜臀久久99精品久久久久宅男| 国产亚洲欧美日韩精品一区二区三区 | 亚洲女人av| 欧美va亚洲va日韩∨a综合色| 欧美一区二区性| 久久国产精品色av免费看| 亚洲3区在线| 福利片在线一区二区| 韩日一区二区| 亚洲少妇自拍| 日韩精品1区| 青青青国产精品| 亚洲欧洲一区二区天堂久久| 精品国产一区二区三区av片| 亚洲欧美久久久| 欧美成人精品三级网站| 综合欧美精品| 米奇777超碰欧美日韩亚洲| 精品久久福利| 美国三级日本三级久久99 | 丁香六月综合| 久久九九精品| 麻豆成人av在线| 日本一区二区中文字幕| 欧美日韩国产高清电影| 久久精品亚洲一区二区| 麻豆精品网站| 成人午夜网址| 欧美aa一级| 伊人影院久久| 国产精品美女久久久久久不卡| 欧美国产中文高清| 欧美日韩视频免费观看| 日本欧美一区二区| 日韩午夜av| 国产精品久久久久久久久久10秀| 国产探花在线精品| 亚洲精品一区二区在线看| 久久爱www成人| 国产欧美日韩精品一区二区免费| 伊人久久亚洲美女图片| 日韩一区电影| 国产资源在线观看入口av| 亚洲午夜国产成人| 日韩.com| 日韩综合一区二区三区| 日韩一区二区三区精品| 日本特黄久久久高潮| 国产成人免费精品| 99在线精品视频在线观看| 久久xxxx| 久久尤物视频| 婷婷中文字幕一区| 午夜在线观看免费一区| 欧美日韩中文字幕一区二区三区 | 91av亚洲| 久久香蕉精品香蕉| 偷拍亚洲精品| 99久久婷婷| 国产精品15p| 日韩一二三区在线观看| 日韩精品乱码av一区二区| 91福利精品在线观看| 国产精品蜜月aⅴ在线| 精品视频免费| 日韩中文欧美| 久久精品主播| 国产日韩综合| 国产精品蜜芽在线观看| 欧美午夜精品一区二区三区电影| 欧美日韩1区| 亚洲欧洲午夜| 亚洲一二三区视频| 黑丝美女一区二区| 激情不卡一区二区三区视频在线| 亚洲一二av| 国产精品精品| 免费观看在线综合色| 国产日本精品| 伊人精品一区| 欧美成人a交片免费看| 久久99偷拍| 欧美极品中文字幕| 视频一区欧美精品| 欧美久久亚洲| 久久久人人人| 日韩精品欧美大片| 国产毛片精品| 91精品国产福利在线观看麻豆| 日韩在线高清| 日本在线成人| 精品亚洲成人| 在线亚洲精品| 亚洲精品日本| 久久aⅴ国产紧身牛仔裤| av免费不卡国产观看| 欧美日本不卡| 国产精品theporn| 欧美韩日一区| 欧美成人基地 | 亚洲免费中文| 久久一区二区中文字幕| 视频福利一区| 国产亚洲欧洲| 免费在线观看一区二区三区| 精品久久中文| 国产精品xxxav免费视频| 亚洲精品99| 日韩亚洲一区在线| 热三久草你在线| 国产精品扒开腿做爽爽爽软件| 爽爽淫人综合网网站| 91一区二区| 国产探花一区二区| 在线观看视频免费一区二区三区| 久久麻豆视频| 欧洲毛片在线视频免费观看| 国产欧美日韩在线一区二区| 亚洲精品伊人| 久久精品资源| 久久久久观看| 久久这里只有精品一区二区| 日韩av中文字幕一区二区三区| 你懂的网址国产 欧美| 欧美激情aⅴ一区二区三区 | 黄色亚洲免费| 日韩高清成人| 久久精品福利| 伊人久久大香伊蕉在人线观看热v|