• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

선생님 질문 있습니다!

21.02.07 15:12 작성 조회수 97

0

안녕하세요 제가 만들어본 코드에서 도저히 안되는 부분이 있어서 질문 남깁니다..

1. 첫번째 클래스에 있는 QtextBrowser에 현재상태가 표시되게 하고 싶은데 안됩니다...

전역변수에서 값을 받는건 되는거 같은데 두번째 클래스에서 첫번째 클래스로 값을 보내는 건 안되는 것 같더라구요..

2. 다른 방법으로 현재 상태가 어떻다! 표시할 수 있는 방법은 없나요?

3.오류로 인한 PyQt5 창 닫는 건 어떻게 멈출 수 있을까요?

 

구글링 많이 해봤는데....도와주십시오...ㅠㅠㅠ

import sys
from PyQt5.QtWidgets import *
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import sys
import time
import pyperclip
from PyQt5.QtCore import *

class MyApp(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()
    def initUI(self):
        self.Qline = QLineEdit()

        self.Qline1 = QLineEdit()
        self.Qline1.returnPressed.connect(self.append_text)

        self.Qline2 = QLineEdit()
        self.Qline2.returnPressed.connect(self.append_text1)

        self.Qline3 = QLineEdit()
        self.Qline3.returnPressed.connect(self.append_text2)
        
        self.Browser = QTextBrowser()
        self.Browser.setAcceptRichText(True)
        self.Browser.setOpenExternalLinks(True)

        self.Browserr = QTextBrowser()
        self.Browserr.setAcceptRichText(True)
        self.Browserr.setOpenExternalLinks(True)

        self.Browser1 = QTextBrowser()
        self.Browser1.setAcceptRichText(True)
        self.Browser1.setOpenExternalLinks(True)

        self.Browser2 = QTextBrowser()
        self.Browser2.setAcceptRichText(True)
        self.Browser2.setOpenExternalLinks(True)

        self.Browser3 = QTextBrowser()
        self.Browser3.setAcceptRichText(True)
        self.Browser3.setOpenExternalLinks(True)

        self.label1=QLabel('아이디:')
        self.label2=QLabel('패스워드:')
        self.label3=QLabel('주소:')
        self.label4=QLabel('')
        self.label6=QLabel('주소 입력 후 Enter')
        self.label7=QLabel('')
        self.label8=QLabel('')
        self.label9=QLabel('검색어 :')

        self.clear_btn = QPushButton('Clear')
        self.clear_btn.pressed.connect(self.clear_text)

        self.clear_btn2 = QPushButton('Clear')
        self.clear_btn2.pressed.connect(self.clear_text2)

        self.clear_btn3 = QPushButton('Clear')
        self.clear_btn3.pressed.connect(self.clear_text3)
        
        self.start = QPushButton('Start'self)
        self.start.clicked.connect(self.start_text)

        grid = QGridLayout()
        self.setLayout(grid)

        grid.addWidget(self.label100)
        grid.addWidget(self.Qline01)
        grid.addWidget(self.label210)
        grid.addWidget(self.Qline111)
        grid.addWidget(self.Browser31)
        grid.addWidget(self.Browserr41)
        grid.addWidget(self.clear_btn51)

        grid.addWidget(self.label460)
        grid.addWidget(self.label370)
        grid.addWidget(self.Qline271)
        grid.addWidget(self.label681)
        grid.addWidget(self.Browser191)
        grid.addWidget(self.clear_btn2101)


        grid.addWidget(self.label8130)
        grid.addWidget(self.label9140)
        grid.addWidget(self.Qline3141)
        grid.addWidget(self.Browser2151)
        grid.addWidget(self.clear_btn3161)
        grid.addWidget(self.label7170)
        grid.addWidget(self.start181)
        grid.addWidget(self.Browser3191)

        self.setWindowTitle('로그인 해봅시다!')
        self.setGeometry(300100400500)
        self.show()

    def append_text(self):
        text = self.Qline.text()
        text1 = self.Qline1.text()
        self.Browser.append(text)
        self.Browserr.append(text1)
        self.Qline.clear()
        self.Qline1.clear()

    def append_text1(self):
        text2 = self.Qline2.text()
        self.Browser1.append(text2)
        self.Qline2.clear()

    def append_text2(self):
        text3 = self.Qline3.text()
        self.Browser2.append(text3)
        self.Qline3.clear()

    def clear_text(self):
        self.Browser.clear()
        self.Browserr.clear()

    def clear_text2(self):
        self.Browser1.clear()

    def clear_text3(self):
        self.Browser2.clear()

    def start_text(self):
        self.Browser3.setText("검색 시작!")
        self.worker = WorkerThread()
        self.worker.start()
        global a
        a = self.Browser.toPlainText()
        global b
        b = self.Browserr.toPlainText()
        global c
        c = self.Browser3

class WorkerThread(QThreadQWidget):
    def run(self):
        self.actions
        ppap = a.split('\n')
        ppap2 = b.split('\n')
        i = 0
        while i < len(ppap):
            driver = webdriver.Chrome(executable_path=r'C:\\newdongwoo\\chromedriver.exe')
            driver.get("https://nid.naver.com/nidlogin.login?svctype=262144&url=https%3A%2F%2Fnid.naver.com%2Fmobile%2Fuser%2Fhelp%2FnaverProfile.nhn%3Flang%3Dko_KR")
            login_btn = driver.find_element_by_id('log.login')
            tag_id = driver.find_element_by_name('id')
            tag_pw = driver.find_element_by_name('pw')
            tag_id.clear()
            tag_id.click()
            c.setText("이 코드에서 값을 못 보내는 듯 합니다..")
            pyperclip.copy(ppap[i])
            tag_id.send_keys(Keys.CONTROL'v')
            time.sleep(1)

            tag_pw.click()
            pyperclip.copy(ppap2[i])
            tag_pw.send_keys(Keys.CONTROL'v')
            time.sleep(1)

            login_btn.click()
            time.sleep(2)        
            i += 1
                
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = MyApp()
    sys.exit(app.exec_())

답변 2

·

답변을 작성해보세요.

0

넵 파이참으로 확인해보겠습니다. 감사합니다!^^

0

안녕하세요. 

열심히 하시네요 지금 소스코드 상으로는 큰 문제는 없어보이는데

디버깅을 해봐야 될 것 같습니다.

검색 후 pycharm 무료 버전 등으로 실행하셔서 로그를 살펴보시는 것을 추천드립니다.

아직까지 pyqt 오류로 갑자기 닫히는 원인은 운영체제 및 파이썬 버전과도 영향이 있어 막기는 쉽지 않습니다.