본문 바로가기
카테고리 없음

콤보박스, QLineEdit Data 생성,수정,삭제

by Pymac 2023. 11. 27.
반응형

QLineEdit에 이름,아이디,비밀번호 입력하고 저장 버튼을 누르면 값이 저장되고 이름은 콤보박스 리스트에 추가됨

콤보박스에서 이름을 선택하면 변수에 이름,비밀번호가 저장됨

콤보박스에 이름을 선택하고 QLineEdit에 아이디,비밀번호만 입력하고 수정 버튼누르면 수정됨
콤보박스에 이름선택하고 삭제 버튼을 누르면 삭제됨

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QMessageBox
from PyQt5.uic import loadUi
from selenium import webdriver

class MyWindow(QMainWindow):
    def __init__(self):
        super(MyWindow, self).__init__()
        loadUi("design.ui", self)

        # 저장 버튼 클릭 시 이벤트 연결
        self.saveButton.clicked.connect(self.save_data)

        # 수정 버튼 클릭 시 이벤트 연결
        self.updateButton.clicked.connect(self.update_data)

        # 삭제 버튼 클릭 시 이벤트 연결
        self.deleteButton.clicked.connect(self.delete_data)

        # 콤보박스 아이템 선택 시 이벤트 연결
        self.comboBox1_8.currentIndexChanged.connect(self.load_data)

    def save_data(self):
        name = self.nameLineEdit.text()
        username = self.usernameLineEdit.text()
        password = self.passwordLineEdit.text()

        # Selenium을 사용하여 데이터 저장
        driver = webdriver.Chrome()  # Chrome 브라우저를 사용하려면 ChromeDriver가 필요합니다.
        driver.get("your_website_url")  # 웹페이지의 URL을 입력하세요.

        # 예시: 웹페이지의 각 입력 필드에 데이터를 입력하는 코드
        driver.find_element_by_id("name").send_keys(name)
        driver.find_element_by_id("username").send_keys(username)
        driver.find_element_by_id("password").send_keys(password)

        # 예시: 저장 버튼을 누르는 코드
        driver.find_element_by_id("saveButton").click()

        driver.quit()

    def load_data(self):
        selected_name = self.comboBox1_8.currentText()

        # Selenium을 사용하여 데이터 불러오기
        driver = webdriver.Chrome()  # Chrome 브라우저를 사용하려면 ChromeDriver가 필요합니다.
        driver.get("your_website_url")  # 웹페이지의 URL을 입력하세요.

        # 예시: 콤보박스에서 선택한 이름에 해당하는 데이터 가져오기
        username = driver.find_element_by_id(f"{selected_name}_username").text
        password = driver.find_element_by_id(f"{selected_name}_password").text

        # 불러온 데이터로 QLineEdit 업데이트
        self.usernameLineEdit.setText(username)
        self.passwordLineEdit.setText(password)

        driver.quit()

    def update_data(self):
        selected_name = self.comboBox1_8.currentText()
        new_username = self.usernameLineEdit.text()
        new_password = self.passwordLineEdit.text()

        # Selenium을 사용하여 데이터 수정
        driver = webdriver.Chrome()  # Chrome 브라우저를 사용하려면 ChromeDriver가 필요합니다.
        driver.get("your_website_url")  # 웹페이지의 URL을 입력하세요.

        # 예시: 콤보박스에서 선택한 이름에 해당하는 데이터 수정하는 코드
        driver.find_element_by_id(f"{selected_name}_username").clear()
        driver.find_element_by_id(f"{selected_name}_username").send_keys(new_username)
        driver.find_element_by_id(f"{selected_name}_password").clear()
        driver.find_element_by_id(f"{selected_name}_password").send_keys(new_password)

        # 예시: 수정 버튼을 누르는 코드
        driver.find_element_by_id("updateButton").click()

        driver.quit()

        # 수정 후 다시 데이터 불러오기
        self.load_data()

    def delete_data(self):
        selected_name = self.comboBox1_8.currentText()

        # Selenium을 사용하여 데이터 삭제
        driver = webdriver.Chrome()  # Chrome 브라우저를 사용하려면 ChromeDriver가 필요합니다.
        driver.get("your_website_url")  # 웹페이지의 URL을 입력하세요.

        # 예시: 콤보박스에서 선택한 이름에 해당하는 데이터 삭제하는 코드
        driver.find_element_by_id(f"{selected_name}_deleteButton").click()

        driver.quit()

        # 삭제 후 콤보박스 업데이트
        self.comboBox1_8.removeItem(self.comboBox1_8.findText(selected_name))

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MyWindow()
    window.show()
    sys.exit(app.exec_())

반응형