Darkhan
это понятно, но вот оба потока не могут брать данные с одной переменной.
почему? Они же читают а не пишут туда. Вторых есть блокировки. В третьих данные можно предавать в виде аргументов а не брать “втупую”
например
import sys, time
from threading import Thread
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class Gui(QWidget):
def __init__(self):
super().__init__()
self.btn = QPushButton(self,text='Click')
self.btn.clicked.connect(self.btn_click)
self.loginLabel = QLabel(self,text='Login:')
self.passwdLabel = QLabel(self,text='Password:')
self.login = QLineEdit(self)
self.passwd = QLineEdit(self)
self.layout = QGridLayout(self)
self.layout.addWidget(self.loginLabel, 0, 0)
self.layout.addWidget(self.login, 0, 1)
self.layout.addWidget(self.passwdLabel, 1, 0)
self.layout.addWidget(self.passwd, 1, 1)
self.layout.addWidget(self.btn, 2, 0,1,2)
self.show()
def btn_click(self):
login = self.login.text()
passwd = self.passwd.text()
if login and passwd:
p = Thread(target=self.auth, args=(login, passwd))
p.start()
else:
print('login or password empty')
def auth(self,login, passwd):
for i in range (10):
print( 'trying connect to server with login: {} passwd: {}'.format(login, passwd))
time.sleep(1)
print('connection established with login: {} passwd: {}'.format(login, passwd))
if __name__ == '__main__':
myApp = QApplication(sys.argv)
gui = Gui()
sys.exit(myApp.exec_())
и никаких конфликтов