인프런 커뮤니티 질문&답변

신인철님의 프로필 이미지

작성한 질문수

예제로 살펴보는 PyQt Tutorial

몇가지 질문이 있습니다.

작성

·

267

0

좋은 강의 감사드립니다. 정말 많은 정보를 얻고 갑니다.

아래와 같이, 몇가지 궁금한 것이 있는데 답변해주시면 감사드리겠습니다.

 

  1. QT Designer 활용

    • QT Designer 활용하니 UI를 직접 눈에 보이게 만들 수 있어서 굉장히 편한 것 같습니다.

       

    • 그러나, UI를 두개 이상 쓸 경우에는 어떻게 ui파일을 load할 수 있을까요??(ui 파일이 2개가 될 것 같은데...) 예를 들어 로그인 이후 메인화면으로 진입한다던지 이런 경우?

       

    • ui_login = uic.loadUiType("login.ui")[0]

    • ui_main = uic.loadUiType("main.ui")[0] -->이런식으로 두개 ui 파일을 불러오면 될까요?

    • class myapp(QWidget,ui_login,ui_main): --> 이런식으로 ui 인자를 두개를 받아야할까요?

      • def __init__(self): super().__init__() self.setupUi(self)

  2. 그래프 plot 시 plot된 그래프의 값을 표시할 수 있나요? 그래프의 점에 커서를 갔다 대면 툴팁으로 표기 된다던지, 클릭하면 값이 나온다던지...

 

다시 한번 좋은 강의 감사드립니다.

답변 1

0

Seungju Kim님의 프로필 이미지
Seungju Kim
지식공유자

안녕하세요. 인철님 😀

1번 질문에 대한 답변드립니다.

  • 각각의 UI 파일을 별도의 클래스로 로드한 다음, 이들을 메인 애플리케이션 클래스에서 인스턴스화하여 사용하는 것이 대안이 될 수 있겠네요. 아래는 예시코드입니다.

class LoginUI(QWidget, ui_login):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        # 로그인 관련 코드

class MainUI(QWidget, ui_main):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        # 메인 화면 관련 코드

class MyApp(QMainWindow):
    def __init__(self):
        super().__init__()
        self.login = LoginUI()
        self.main = MainUI()
        # 애플리케이션 초기화 코드

 

2번 질문에 대한 답변으로 좋은 라이브러리가 있어 제공드립니다.

https://mplcursors.readthedocs.io/en/stable/

import matplotlib.pyplot as plt
import numpy as np
import mplcursors

data = np.outer(range(10), range(1, 5))

fig, ax = plt.subplots()
lines = ax.plot(data)
ax.set_title("클릭하세용 :)")

mplcursors.cursor(lines)  # or just mplcursors.cursor()

plt.show()