Arkadaşlar yapmak istediğim tam olarak şu.
Pyqt5 ile bir program geliştirdim ve programın bir kısmında plaintext den oluşan bir log kısmı var.
For içinde dönen verileri plaintext e yazdırıyorum verileri ama program sonuçlanında bu verileri yazıyor.
Benim yapmak istediğim print dediğimizde consol ekranında nasıl program çalışırken anlık yazıyorsa o şekilde yazdırmak.
Araştırdığım da pyqt5 de QProcess ile yapılıyormuş ama nasıl kullanıldığını çözemedim. Bu konuda bilgisi olan var mı acaba?
Python Pyqt5 QProcess hakkında bilgisi olan.
7
●94
- 09-10-2022, 16:32:14
- 09-10-2022, 16:47:40mertcangokgoz adlı üyeden alıntı: mesajı görüntüle
def Start(self): txt = self.main.lneIslenecekTxt.text() ciktiDosyasi = self.main.lneCiktiDosyasi.text() txtCiktiAdi = self.main.lneCiktiAdi.text() eklenecekeMetin = self.main.lneEklenecekMetin.text() if txt: if eklenecekeMetin: txtOku = open(txt, 'r') txtMetinOlustur = '' for t in txtOku: metinEkle = str(eklenecekeMetin) + str(t) self.main.plainLog.insertPlainText(metinEkle) txtMetinOlustur+=metinEkle if ciktiDosyasi: if txtCiktiAdi: txtCiktiAdi = txtCiktiAdi + '.txt' yeniTxtYolu = os.path.join(ciktiDosyasi,txtCiktiAdi) txtYaz = open(yeniTxtYolu, 'w') txtYaz.write(txtMetinOlustur) else: self.main.statusbar.showMessage('Çıktı Dosya Adı Girilmedi.', 5000) else: self.main.statusbar.showMessage('Çıktı Dosyası Seçilmedi.', 5000) else: self.main.statusbar.showMessage('Eklenecek Metin Girilmedi.', 5000) else: self.main.statusbar.showMessage('TXT seçilmedi.', 5000)şu kısıma nasıl uyarlayabilirim hocam dediğiniz tam anlayamadım da.
elf.main.plainLog.insertPlainText(metinEkle)
bu kısım ile plaintext e ekliyorum ama en son program sonlanınca yazıyor. - 14-10-2022, 11:35:07Kimlik doğrulama veya yönetimden onay bekliyor.threading kullanmalısın.
Pyqt5'in kendisine ait QThread'ı bulunuyor bunu sınıf içinde yapabilirsin lakin böyle küçük işlemlerde gerek olduğunu düşünmüyorum ama yine de göstereyim.
class Yazdır_Class(QThread): def __init__(self,arg): super().__init__ def run(self): """ CODS"""self.run() fonksiyonunu çalıştırmayacaksın QThread zaten sen çağırmadan kendisi çağırmaktadır bunu sakın atlama
bir diğer yöntem ise threading kütüphanesini kullanmak bu tarz küçük işlemlerde çok daha kolay ve pratik.
eğer bu fonksiyonu bir push button ile clicked signali ile çalıştırmak istiyorsan su sekilde yapacaksn
import threading # # # buton.clicked.connect(self.start_threading) def start_threading(self): the = threading.Thread(self.start,(argument)) the.start() - 14-10-2022, 15:26:00Hocam güzel açıklamışsınız ama benim kafa artık bu konuda çok karıştı.MVX adlı üyeden alıntı: mesajı görüntüle
Rica etsem pc ye bağlanarak gösterme şansınız vaktiniz olabilir mi acaba?
Amacım bu olayı öğrenmek bu basit bir proje evet farkındayım ama başka projelerde geliştiriyorum orada işime çok yarayacak bir konu olduğu için üstüne duruyorum. - 14-10-2022, 16:04:08Kimlik doğrulama veya yönetimden onay bekliyor.Hocam sizi twitter da takip ediyorum. Dünya küçükmüş gerçekten de.mertcangokgoz adlı üyeden alıntı: mesajı görüntüle
- 15-10-2022, 08:57:39Tabi müsait olduğununuzda mesajlardan ulaşmanız yeterlidir.PhYtOnX adlı üyeden alıntı: mesajı görüntüle