728x90
반응형
if __name__ == '__main__':
    from PySide2.QtCore import QCoreApplication
    QCoreApplication.setLibraryPaths(['C:\\Users\\rogue\\OneDrive\\바탕 화면\\cpt\\python\\test\\venv\\Lib\\site-packages\\PySide2\\plugins'])

# import imp
from email.charset import QP
from tkinter import mainloop
from PySide2.QtWidgets import (QApplication, QWidget, QVBoxLayout, QHBoxLayout,
                               QLabel, QFrame, QSizePolicy, QPushButton,
                               QFileDialog, QMessageBox, QLineEdit, QComboBox,
                               QSpinBox, QSlider, QProgressBar,
                               QCheckBox, QGroupBox)

from PySide2.QtGui import (QPixmap, QImage, QColorSpace, QIntValidator, 
                           QDoubleValidator, QRegExpValidator)

from PySide2.QtCore import QRegExp, Qt

import sys

class MainWindow(QWidget):
    def __init__(self, parent=None):
        QWidget.__init__(self, parent)
        
        self.allChecked = False
        
        self.appleCheckBox = QCheckBox("apple")
        self.grapeCheckBox = QCheckBox("grape")
        self.bananaCheckBox = QCheckBox("banana")
        
        # Sub Layout
        layout = QVBoxLayout()
        layout.addWidget(self.appleCheckBox)
        layout.addWidget(self.grapeCheckBox)
        layout.addWidget(self.bananaCheckBox)
        
        self.groupBox = QGroupBox("전체 비활성화", self)
        self.groupBox.setLayout(layout) #Inheritance from Widget
        self.groupBox.setCheckable(True)
        
        # self.groupBox.setChecked()
        
        # self.setWindowTitle("GroupBox QFrame Example")
        # self.resize(500, 500)
        
        # if self.allChecked == True:
        #     self.button = QPushButton("전체선택")
        # else:
        #     self.button = QPushButton("전체해제")
        # self.button = QPushButton("전체선택") if self.allChecked == False else QPushButton("전체해제")
        self.button = QPushButton("전체선택")
        self.button.clicked.connect(self.toggle)
        # self.button.toggled.connect()
        
        # Main Layout
        mainLayout = QVBoxLayout()
        mainLayout.addWidget(self.groupBox)
        mainLayout.addWidget(self.button)
        
        self.setLayout(mainLayout)
        self.setWindowTitle("QGroupBox QFrame Example")
        self.resize(500, 500)
          
        pass
    
    def toggle(self):
        print("toggle::")
        # self.allChecked = False
        # self.groupBox.setChecked(True)
        all = not self.allChecked
        
        # 반전
        # self.appleCheckBox.setChecked(not self.appleCheckBox.isCheckable)
        self.appleCheckBox.setChecked(all)
        self.grapeCheckBox.setChecked(all)
        self.bananaCheckBox.setChecked(all)
        
        self.allChecked = all
        
        if self.allChecked == True:
            self.button.setText('전체 해제')
        else:
            self.button.setText('전체 선택')
        
        # self.button.setText('전체 해제') if self.allChecked == True else self.button.setText('전체 선택')
        
        # 버튼 기능과 동일한 전체 선택 & 전체 해제가 가능한 체크박스 신규 생성하여
        # 동일한 기능 구현
        
        pass

            
if __name__ == '__main__':
    app = QApplication(sys.argv)
    mainWindow = MainWindow()
    mainWindow.show()
    app.exec_()
728x90
반응형

'Qt' 카테고리의 다른 글

login  (0) 2022.11.04
QPushbutton exam..  (0) 2022.11.03
[Qt] Login.py _linux  (0) 2022.11.03
Python Serial Write Qt  (0) 2022.11.01
Serial Communication (from Arduino to Python)  (0) 2022.11.01

+ Recent posts