컴퓨터/Python

python pyqt5 list to listwidget error 수정

풍경소리^^ 2022. 6. 16. 17:01

layout.py--------------------

from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout, \
                            QLabel, QHBoxLayout, QListWidget, QMessageBox
from PyQt5.QtCore import Qt
import pygetwindow as gw
import pyautogui
import sys
import warnings
warnings.simplefilter("ignore", UserWarning)
sys.coinit_flags = 2
import pywinauto
class MyApp(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()
    def initUI(self):
        label1 = QLabel('전체 친구', self)
        label1.setAlignment(Qt.AlignCenter)
        btn1 = QPushButton('가져오기', self)
        # btn1.setCheckable(True)
        # btn1.toggle()
        btn1.clicked.connect(self.btnFriendSCAN_clicked)
        # btn2 = QPushButton(self)
        # btn2.setText('템플릿 저장')
        # btn3 = QPushButton('Button3', self)
        # btn3.setEnabled(False)
        self.listwidget1 = QListWidget()
        Hbox = QHBoxLayout()
        Hbox.addWidget(label1)
        Hbox.addWidget(btn1)
        # Hbox.addWidget(btn2)
        Vbox = QVBoxLayout()
        Vbox.addLayout(Hbox)
        Vbox.addWidget(self.listwidget1)
        # Vbox.addWidget(self.friend_list_wi)
        self.setLayout(Vbox)
        self.setLayout(Vbox)
        self.setWindowTitle('QPushButton')
        self.setGeometry(200, 200, 100, 600)
        self.show()
    def btnFriendSCAN_clicked(self):
        # QMessageBox.about(self, "실행 Dialog", "친구 가져오기 시작위치 클릭")
        win = gw.getWindowsWithTitle('카카오톡')[0]
        if win.isActive == False:
            pywinauto.application.Application().connect(handle=win._hWnd).top_window().set_focus()
        win.activate() #윈도우 활성화
        friend_list = []
        while True:
            prev_titles = gw.getAllTitles()
            pyautogui.press('enter')
            now_titles = gw.getAllTitles()
            for i in now_titles:
                if i not in prev_titles:
                    prev_count = len(friend_list)
                    if len(friend_list) == 0 or friend_list[-1] != i:
                        friend_list.append(i)
                        next_count = len(friend_list)
                        # print(i)
                        pyautogui.hotkey('alt','f4')
                        pyautogui.press('down')
                        break
            if prev_count == next_count:
                break
        # print(friend_list)
        # print(friend_list, len(friend_list))
        pyautogui.hotkey('alt','f4')
        for i in range(len(friend_list)-1):
            pyautogui.press('up')
            i += 1
        # self.friend_to_list(friend_list)
        # print(friend_list, len(friend_list))
    # def friend_to_list(friends, self):
        # label1 = QLabel('전체 친구 목록', self)
        # friend_list_wi = QListWidget()
        # list = ["첫번째","두번째","세번째"] 모르겠다
        for i, friend in enumerate(friend_list):
            self.listwidget1.insertItem(i, friend)
        # self.listwidget1.addWidget(self.friend_list_wi)
        # self.setLayout(self.listwidget1)
        # self.show()
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = MyApp()
    sys.exit(app.exec_())