Merhaba arkadaşlar ufak bir projem için çalışma yapıyorum geçen bir konu açmıştım şu programı başlatıp durdurma hakkında internette araştırma yaparak Qthread ile yapılabileceğini öğrendim fakat 2 klas oluşturuyoruz ThreadClass sınıfıma program üstünden aldığım mail ve şifremi aynı zamanda radyo buton seçimini taşımam gerekiyor ama maallesef aşağıda verdiğim kodda olduğu gibi girilen veriyi alamıyorum farklı bir klas içinde tam olarak bana bir çözüm yolu gösterebilirmisiniz aşağıda verdiğim kodlar içerisinde -----Alınamayan veriler---- diye belirtttim. QMainWindow sınıfından taşımam gerekli klasik yolla bir veri gelmiyor. pyqtSignal olayını ise tam olarak anlayamadım.
class anaPencere(QMainWindow):
def __init__(self):
super().__init__()
self.anapencereForm = Ui_BSBoster()
self.anapencereForm.setupUi(self)
self.thread = {}
#____________________________Start Stop Button___________________________________
self.anapencereForm.psStart.clicked.connect(self.start_worker)
self.anapencereForm.psStop.clicked.connect(self.stop_worker)
def start_worker(self):
self.thread[1] = ThreadClass(parent=None,index=1)
self.thread[1].start()
self.thread[1].any_signal.connect(self.my_function)
self.anapencereForm.psStart.setEnabled(False)
def stop_worker(self):
self.thread[1].stop()
self.anapencereForm.psStart.setEnabled(True)
def my_function(self,counter):
cnt = counter
index = self.sender().index
if index == 1:
print(cnt)
class ThreadClass(QtCore.QThread):
any_signal = QtCore.pyqtSignal(str)
def __init__(self,parent=None,index=0):
super(ThreadClass, self).__init__(parent)
self.index = index
self.is_running = True
def run(self):
print("Starting thread...", self.index)
liste = [] #url listesi
#-------Alınamayan veriler -------------------
m = anaPencere()
if m.anapencereForm.rdgizli.isChecked(): # hangi driver özelliklerinin çalıştırılacağı
hidden()
print("Gizli pencere")
if m.anapencereForm.rdAcik.isChecked():
visible()
print("Açık pencere")
mailim = m.anapencereForm.lineEdit_mail.text()
sifrem = m.anapencereForm.lineEdit_mailpass.text()
#-------------------------- -------------------
for i in liste:
try:
driver.get(i)
time.sleep(3)
self.any_signal.emit(i)
except:
print("Hata verdi : " + str(i))
def stop(self):
self.is_running = False
print("Stoping thread...", self.index)
self.terminate()