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 |