본문 바로가기

qmainwindow2

[PyQt] QMainWindow에서 QMenu 꺼내기 메뉴 선택에 따라 버튼이나 다른 메뉴가 enable/disable 되도록 만들고자 했다. 메뉴로 사용된 QAction 의 인스턴스에서 setEnabled() 메소드를 호출해주면 되는데 이 인스턴스를 끄집어 낼 수가 없었다. 추가한 역순으로 QMainWindow에서 menuBar() 메소드로 QMenuBar 객체를 끄집어 내고, 여기서 QMenu 객체를 끄집어 내면 될듯 했는데... QMenuBar 객체에서 QMenu 객체를 꺼낼 수가 없었다. 당연히 QAction 객체도 끄집어 낼 수 없다. 어쩔수 없이 추가할 때ㅐ 잘 보관했다가 쓰는 수 밖에.. 따라서 QMenu 객체와 QAction 객체는 클래스 전역으로 선언해야했다. QMenu에서 actionAt() 함수를 사용하면 QAction은 꺼낼 수 있는 .. 2020. 5. 8.
[PyQt] QMainWindow QtWidgets.QMainWindow 는 자체적으로 layout 을 가지고 있다고 한다.setLayout() 으로 vbox나 hbox layout을 붙여줄 필요가 없다는 뜻이다. 단지 setCentralWidget() 으로 widget을 추가해주면 된다. ### 2019 / 07 / 04 추가 QMainWindow는 위젯을 추가할 때 setCentralWidget() 함수를 사용하여 단 하나만 추가 가능하다. layout이 아니라 위젯을 추가해야한다!!! 여러개의 위젯이 포함된 화면을 만들기위해서 별도의 위젯으로 만들어주어야한다.QWidget을 상속받은 클래스를 만들어 필요한 레이아웃과 위젯들을 추가해주고이 클래스의 인스턴스를 생성해서 setCentralWidget() 함수로 메인 함수에 추가해주면 된.. 2019. 6. 24.