• 카테고리

    질문 & 답변
  • 세부 분야

    데스크톱 앱 개발

  • 해결 여부

    미해결

따라했는데 안되요....오류가 뜹니다...

21.01.27 13:48 작성 조회수 3.27k

0

TypeError: addWidget(self, QWidget, stretch: int = 0, alignment: Union[Qt.Alignment, Qt.AlignmentFlag] = Qt.Alignment()): argument 1 has unexpected type 'method' PS C:\Users\woody\OneDrive\바탕 화면\Python Workspace>
몇시간을 돌려봐도 선생님이 짠 코드랑 똑같이 짰는데
실행이 안되요.....한번 봐주시겠어요????
from PyQt5.QtCore import Qt
import sys
from PyQt5.QtWidgets import *

class myapp(QWidget):

    def __init__(self):
        super().__init__()
        self.initUI()
    
    def initUI(self):
        self.s = ''

        self.one = QPushButton('1')
        self.one.clicked.connect(lambda:self.clickedNum('1'))

        self.plus = QPushButton('+')
        self.plus.clicked.connect(lambda:self.clickedNum('+'))

        self.three = QPushButton('3')
        self.three.clicked.connect(lambda:self.clickedNum('3'))

        self.one = QPushButton('=')
        self.one.clicked.connect(self.calc)

        hbox = QHBoxLayout()
        hbox.addWidget(self.one)
        hbox.addWidget(self.plus)
        hbox.addWidget(self.three)
        hbox.addWidget(self.calc)

        self.setLayout(hbox)


        self.setWindowTitle("계산기")
        self.show()
    
    def clickedNum(selftext):
        self.s += text
        print(self.s)

    
    def calc(self):
        print(eval(self.s))
        self.s = ''


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

답변 2

·

답변을 작성해보세요.

0

chansol.h님의 프로필

chansol.h

2023.08.24

        self.qq = QPushButton('=')
        self.qq.clicked.connect(self.calc)
        
        hbox = QHBoxLayout()
        hbox.addWidget(self.one)
        hbox.addWidget(self.plus)
        hbox.addWidget(self.three)
        hbox.addWidget(self.qq)

0

self.one 변수명을 중복하게 쓰셔서 오류가 나는것 같네요!
참고하시면 될 것 같습니다.