blog

# ClipboardToBase64 - 7. UI 만들기. 완성. 본문

Python/ClipboardToBase64

# ClipboardToBase64 - 7. UI 만들기. 완성.

ismyresume 2022. 1. 11. 15:46

ClipboardToBase64 - 7. UI 만들기

좋긴 하지만 할때마다 명령창 띄워서 main.py 입력할 수는 없는 노릇이니 간단하게 UI를 만들어 봐야겠다. PyQt5를 사용한다.

2022-01-11-14-25-20_71553558-e861-4cd2-9928-e25d1d8b4fbe.png

대충 이런 모양으로 만들면 될거같다.

def clipboard_to_base64():
    get_clipboard_to_base64()

class App(QWidget):
    def __init__(self):
        super().__init__()
        self.setGeometry(100, 100, 200, 100)
        self.copyButton = QPushButton("Copy")
        self.copyButton.clicked.connect(clipboard_to_base64)
        self.checkButton = QCheckBox("Always On")
        self.checkButton.stateChanged.connect(self.alwaysontop)
        layout = QGridLayout(self)
        self.copyButton.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        layout.addWidget(self.copyButton, 1, 0, 1, 1)
        layout.addWidget(self.checkButton, 2, 0, 1, 1)
        self.setLayout(layout)

    def alwaysontop(self, state):
        if state == Qt.Checked:
            self.setWindowFlags(self.windowFlags() | Qt.WindowStaysOnTopHint)
            self.show()
        else:
            self.setWindowFlags(self.windowFlags() & ~QtCore.Qt.WindowStaysOnTopHint)
            self.show()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = App()
    ex.show()
    app.exec_()

완성

pip install pyinstaller
pyinstaller --onefile -w main.py

pyinstaller 를 설치하고 실행파일로 만든다.

2022-01-11-14-34-26_79e1eccb-141b-4ed4-bc42-b7d0eae6bb44.png

Copy 버튼을 누르면 클립보드에 마크다운 태그로 이미지가 저장된다.

Always On 버튼을 누르면 항상 위 상태가 된다.

개선 요구 사항

  1. Print Screen 키 캡쳐는 동작하지 않았고, Win+Shift+S 키 캡쳐만 동작했다.
  2. VSCode의 Markdown All in One 확장을 통해 사용하는 katex 수식 중 지원되지 않는 수식이 꽤 있었다.
  3. win32clipboard 를 사용해서, 운영체제에 제약이 있다.

Github ClipboardToBase64

Comments