• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

클래스 접근이 어려워요ㅠ 도와주세요

20.01.17 10:10 작성 조회수 172

0

안녕하세요~ 강의 정말 잘 듣고 있습니다.

제가 클래스 접근이 서툴러서 아래와 같은 문제를 해결 못하고 있습니다.

부디 도움 부탁드립니다.

 

Form.py 와 Main.py , Form2.py 3개로 이뤄어진 프로젝트에서

Form.py 에서는 변수만 만들어주고 Main 에서 띄어주는거 까지 성공했습니다.

이젠 Form2.py 에서 Form.py 에서의 버튼의 사이즈를 변경하고 싶습니다.

감사합니다~

밑에는 제가 작성한 코드 입니다.

main.py

import sys, Form, Form2
from PyQt5.QtWidgets import QWidget, QApplication


class MainWindow(QWidget, Form.Ui_Form):
def __init__(self):
super().__init__()
self.setupUI()
# self.set_resize(200, 200)

if __name__ == "__main__":
app = QApplication(sys.argv)
form = MainWindow()
form.show()
app.exec_()

 

Form.py

import sys

from PyQt5.QtWidgets import QPushButton

class Ui_Form(object):
def setupUI(self):
self.pb1 = QPushButton('test', self)
# self.pb1.resize(200, 200)

def set_resize(self, width, height):
self.pb1.resize(width, height)

Form2.py

from Form import Ui_Form

class camera_set(object):
def pb_resize(self):
self.ui = Ui_Form()
self.ui.set_resize(200, 200)
# self.pb_resize(200, 200)

답변 4

·

답변을 작성해보세요.

0

laodlhoya님의 프로필

laodlhoya

질문자

2020.01.21

아래 처럼 main 에서는 조절이 가능합니다.

그런데 Form2.py 에서 조절이 안됩니다 ㅠㅠㅠ

import sys, Form, Form2
from PyQt5.QtWidgets import QWidget, QApplication


class MainWindow(QWidget, Form.Ui_Form):
def __init__(self):
super().__init__()
self.setupUI()
# Form2.camera_set()
# self.set_resize(200, 200)
self.pb1.resize(200, 200)


if __name__ == "__main__":
app = QApplication(sys.argv)
form = MainWindow()
form.show()
app.exec_()

0

이상하네요.

form 임포트 후 리사이즈가 될 텐데요.

https://stackoverflow.com/questions/55600742/modifying-layout-in-resize-event

위 링크 확인하셔서 접근해보세요.

우선 임포트 하지마시고 자체적으로 리사이즈가 가능한지부터 체크해보셔야 될 것 같습니다.

0

laodlhoya님의 프로필

laodlhoya

질문자

2020.01.20

import sys, Form, Form2
from PyQt5.QtWidgets import QWidget, QApplication


class MainWindow(QWidget, Form.Ui_Form):
def __init__(self):
super().__init__()
self.setupUI()
Form2.camera_set()
# self.set_resize(200, 200)

if __name__ == "__main__":
app = QApplication(sys.argv)
form = MainWindow()
form.show()
app.exec_()from PyQt5.QtWidgets import QPushButton

class Ui_Form(object):
def setupUI(self):
self.pb1 = QPushButton('test', self)
# self.pb1.resize(200, 200)

def set_resize(self, width, height):
self.pb1.resize(width, height)from Form import Ui_Form

class camera_set():
def __init__(self):
Ui_Form.pb1.resize(200, 200)
Traceback (most recent call last):
  File "D:/Research/Python/screen_shot/main3.py", line 14, in <module>
    form = MainWindow()
  File "D:/Research/Python/screen_shot/main3.py", line 9, in __init__
    Form2.camera_set()
  File "D:\Research\Python\screen_shot\Form2.py", line 6, in __init__
    Ui_Form.pb1.resize(200, 200)
AttributeError: type object 'Ui_Form' has no attribute 'pb1'

Process finished with exit code 1

고쳣는데...이렇게 오류가 납니다 ㅠㅠ

0

네 안녕하세요.

Ui_Form 임포트 후

Ui_Form의 pb1 버튼에 직접 접근해서 resize 조절 하시면 될 것 같습니다.

Ui_Form.pb1.set_resize 형식이 될 것 같습니다.