L001.PyQt

초보자를 위한 Python GUI 프로그래밍 - PyQt5

https://wikidocs.net/book/2944

https://freeprog.tistory.com/330?category=716617

C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\Library\bin\designer.exe

C:\ProgramData\Anaconda3\Library\bin\designer.exe

 1 #设置为 32 位
 2 set CONDA_FORCE_32BIT=1
 3 
 4 #创建 32位 python3
 5 conda create -n py3-32 python=3
 6 
 7 #激活 环境
 8 activate py3-32
 9 
10 pip install PyQt5
11 
12 pip install jupyter notebook
13 
14 要是要改成64位 后面没有1
15 set CONDA_FORCE_32BIT=

 

 

 

 1 import sys
 2 from PyQt5.QtWidgets import *
 3 from PyQt5 import uic
 4 
 5 #UI파일 연결
 6 #단, UI파일은 Python 코드 파일과 같은 디렉토리에 위치해야한다.
 7 form_class = uic.loadUiType("UI파일이름.ui")[0]
 8 
 9 #화면을 띄우는데 사용되는 Class 선언
10 class WindowClass(QMainWindow, form_class) :
11     def __init__(self) :
12         super().__init__()
13         self.setupUi(self)
14         """
15         ---------------------------------------------
16         이 부분에 시그널을 입력해야 합니다.
17         시그널이 작동할 때 실행될 기능은 보통 이 클래스의 멤버함수로 작성합니다.
18         ---------------------------------------------
19         """
20 
21 if __name__ == "__main__" :    
22     app = QApplication(sys.argv) #QApplication : 프로그램을 실행시켜주는 클래스    
23     myWindow = WindowClass() #WindowClass의 인스턴스 생성    
24     myWindow.show()#프로그램 화면을 보여주는 코드    
25     app.exec_()#프로그램을 이벤트루프로 진입시키는(프로그램을 작동시키는) 코드
26 
27 """
28 모든 함수의 앞에는 self.ObjectName이 들어가야 합니다.
29 .move(x,y)=>위젯의 위치를 지정합니다. Parameter에는 이동할 위치의 x,y좌표가 들어갑니다.
30 .resize(width,height)=>위젯의 크기를 지정합니다. Parameter에는 위젯의 가로,세로 크기가 들어갑니다.
31 .text()=>위젯에 쓰여있는 글자를 가져옵니다.
32 .setText(String)=>위젯에 새롭게 글자를 작성합니다. Parameter에는 표시할 글자가 들어갑니다.
33 """

 

 pushButton

 1 import sys
 2 from PyQt5.QtWidgets import *
 3 from PyQt5 import uic
 4 
 5 #UI파일 연결
 6 #단, UI파일은 Python 코드 파일과 같은 디렉토리에 위치해야한다.
 7 form_class = uic.loadUiType("L001.PushButton.ui")[0]
 8 
 9 #화면을 띄우는데 사용되는 Class 선언
10 class WindowClass(QMainWindow, form_class) :
11     def __init__(self) :
12         super().__init__()
13         self.setupUi(self)
14 
15         #버튼에 기능을 연결하는 코드
16         #self.버튼이름.clicked.connect(함수)
17         self.pushButton_1.clicked.connect(self.button1Function)
18         self.pushButton_2.clicked.connect(self.button2Function)
19 
20     #btn_1이 눌리면 작동할 함수
21     def button1Function(self) :
22         print("btn_1 Clicked")
23 
24     #btn_2가 눌리면 작동할 함수
25     def button2Function(self) :
26         print("btn_2 Clicked")
27 
28 if __name__ == "__main__" :
29     app = QApplication(sys.argv)
30     myWindow = WindowClass() 
31     myWindow.show()
32     app.exec_()



 1 import sys
 2 from PyQt5.QtWidgets import *
 3 from PyQt5 import uic
 4 
 5 form_class = uic.loadUiType("L002.radioButton.ui")[0]
 6 
 7 class WindowClass(QMainWindow, form_class) :
 8     def __init__(self) :
 9         super().__init__()
10         self.setupUi(self)
11 
12         #GroupBox안에 있는 RadioButton들을 연결합니다.
13         #GroupBox의 자세한 설명은 02.14 GroupBox를 참고하세요.
14         #self.Radio버튼이름.clicked.connect(함수)
15         self.radioButton.clicked.connect(self.groupboxRadFunction)
16         self.radioButton_2.clicked.connect(self.groupboxRadFunction)
17         self.radioButton_3.clicked.connect(self.groupboxRadFunction)
18 
19     def groupboxRadFunction(self) :
20         if self.radioButton.isChecked() : print("GroupBox_rad1 Chekced")
21         elif self.radioButton_2.isChecked() : print("GroupBox_rad2 Checked")
22         elif self.radioButton_3.isChecked() : print("GroupBox_rad3 Checked")
23 
24 if __name__ == "__main__" :
25     app = QApplication(sys.argv)
26     myWindow = WindowClass()
27     myWindow.show()
28     app.exec_()

 checkBox

 1 import sys
 2 from PyQt5.QtWidgets import *
 3 from PyQt5 import uic
 4 
 5 form_class = uic.loadUiType("L003.checkBox.ui")[0]
 6 
 7 class WindowClass(QMainWindow, form_class) :
 8     def __init__(self) :
 9         super().__init__()
10         self.setupUi(self)   
11 
12         #GroupBox안에 있는 CheckBox에 기능 연결
13         self.checkBox.stateChanged.connect(self.groupchkFunction)
14         self.checkBox_2.stateChanged.connect(self.groupchkFunction)
15         
16         #GroupBox밖에 있는 CheckBox에 기능 연결
17         self.checkBox_3.stateChanged.connect(self.chkFunction)
18         self.checkBox_4.stateChanged.connect(self.chkFunction)
19         
20     def groupchkFunction(self) :
21         if self.checkBox.isChecked() : print("groupchk_1 isChecked")
22         if self.checkBox_2.isChecked() : print("groupchk_2 isChecked")
23 
24     def chkFunction(self) :
25         #CheckBox는 여러개가 선택될 수 있기 때문에 elif를 사용하지 않습니다.
26         if self.checkBox_3.isChecked() : print("chk_3 isChecked")
27         if self.checkBox_4.isChecked() : print("chk_4 isChecked")
28 
29 if __name__ == "__main__" :
30     app = QApplication(sys.argv)
31     myWindow = WindowClass()
32     myWindow.show()
33     app.exec_()

 Label

 

 1 import sys
 2 from PyQt5.QtWidgets import *
 3 from PyQt5 import uic
 4 
 5 #UI파일 연결
 6 #단, UI파일은 Python 코드 파일과 같은 디렉토리에 위치해야한다.
 7 form_class = uic.loadUiType("L004.Label")[0]
 8 
 9 #화면을 띄우는데 사용되는 Class 선언
10 class WindowClass(QMainWindow, form_class) :
11     def __init__(self) :
12         super().__init__()
13         self.setupUi(self)
14 
15         #버튼에 기능을 연결하는 코드
16         self.btn_clean.clicked.connect(self.fun_label_clean)
17         self.btn_get.clicked.connect(self.fun_label_get)
18         self.btn_set.clicked.connect(self.fun_label_set)
19 
20     def fun_label_clean(self) :
21         self.label.clear() #清理文本
22         
23     def fun_label_get(self) :
24         print(self.label.text()) #获取文本       
25     
26     def fun_label_set(self) :
27         self.label.setText("String") #设置文本
28 
29 if __name__ == "__main__" :
30     app = QApplication(sys.argv)
31     myWindow = WindowClass() 
32     myWindow.show()
33     app.exec_()

 TextBrowser

 1 import sys
 2 from PyQt5.QtWidgets import *
 3 from PyQt5 import uic
 4 
 5 #UI파일 연결
 6 #단, UI파일은 Python 코드 파일과 같은 디렉토리에 위치해야한다.
 7 form_class = uic.loadUiType("L005.TextBrowser.ui")[0]
 8 
 9 #화면을 띄우는데 사용되는 Class 선언
10 class WindowClass(QMainWindow, form_class) :
11     def __init__(self) :
12         super().__init__()
13         self.setupUi(self)
14 
15         #버튼에 기능을 연결하는 코드
16         self.btn_clear.clicked.connect(self.fun_textBrowser_clear)
17         self.btn_get.clicked.connect(self.fun_textBrowser_get)
18         self.btn_set.clicked.connect(self.fun_textBrowser_set)
19         self.btn_append.clicked.connect(self.fun_textBrowser_append)
20 
21     def fun_textBrowser_clear(self) :
22         self.textBrowser.clear() #清理文本
23         
24     def fun_textBrowser_get(self) :
25         print(self.textBrowser.toPlainText()) #获取文本       
26     
27     def fun_textBrowser_set(self) :
28         self.textBrowser.setPlainText("set") #设置文本
29         
30     def fun_textBrowser_append(self) :
31         self.textBrowser.append("append") #追加文本
32 
33 if __name__ == "__main__" :
34     app = QApplication(sys.argv)
35     myWindow = WindowClass() 
36     myWindow.show()
37     app.exec_()

 lineEdit

 1 import sys
 2 from PyQt5.QtWidgets import *
 3 from PyQt5 import uic
 4 
 5 form_class = uic.loadUiType("L006.LineEdit.ui")[0]
 6 
 7 class WindowClass(QMainWindow, form_class) :
 8     def __init__(self) :
 9         super().__init__()
10         self.setupUi(self)
11 
12         #버튼에 기능을 할당하는 코드
13         #LineEdit의 글자가 바뀔 때 기능 실행
14         #self.LineEdit이름.textChanged.connect(함수)
15 
16         #LineEdit에서 Return키(Enter키)가 눌렸을 때 기능 실행
17         #self.LineEdit이름.returnPressed.connect(함수)        
18         self.lineEdit.textChanged.connect(self.fun_textChanged)
19         self.lineEdit.returnPressed.connect(self.fun_returnPressed)        
20         self.btn_set.clicked.connect(self.fun_set)
21         self.btn_get.clicked.connect(self.fun_get)
22 
23     def fun_textChanged(self) :
24         print("textChanged")
25 
26     def fun_returnPressed(self) :
27         print("fun_returnPressed")      
28 
29     def fun_set(self) :
30         #self.lineedit이름.setText("String")
31         #Lineedit의 글자를 바꾸는 메서드
32         self.lineEdit.setText("Change Text")
33         
34     def fun_get(self) :
35         #self.lineedit이름.text()
36         #Lineedit에 있는 글자를 가져오는 메서드
37         print(self.lineEdit.text())
38 
39 if __name__ == "__main__" :
40     app = QApplication(sys.argv)
41     myWindow = WindowClass()
42     myWindow.show()
43     app.exec_()

 TextEdit

 1 """
 2 TextEdit의 주요 함수
 3 .toPlainText()=>PlainTextEdit에 쓰여있는 글자를 가져옵니다.
 4 .setPlainText(String)=>PlainTextEdit에 글을 새로 입력합니다. Parameter에는 PlainTextEdit에 표시할 글자가 들어갑니다.
 5 .appendPlainText(String)=>PlainTextEdit에 글자를 추가합니다. 추가된 글자는 다음줄에 표시되며, Parameter에는 추가할 글자가 들어갑니다.
 6 .clear()=>PlainTextEdit에 쓰여있는 글자를 지웁니다.
 7 
 8 TextEdit 글자의 입력, 가져오기에 관한 함수
 9 .toPlainText()=>TextEdit에 쓰여있는 글자를 가져옵니다.
10 .setPlainText(String)=>TextEdit에 PlainText 형식의 글을 새로 입력합니다. Parameter에는 TextEdit에 표시할 글자가 들어갑니다.
11 .setText(String)=>TextEdit에 RichText 형식의 글을 입력합니다. Parameter에는 TextEdit에 표시할 글자가 들어갑니다.
12 .append(String)=>TextEdit에 글자를 추가합니다. 추가된 글자는 다음줄에 표시되며, Parameter에는 추가할 글자가 들어갑니다.
13 .clear()=>TextEdit에 쓰여있는 글자를 지웁니다.
14 
15 TextEdit 글자의 모양에 관련된 함수
16 .setCurrentFont(QFont)=>TextEdit의 폰트를 바꿉니다. Parameter에는 QFont형식의 객체가 들어갑니다.
17 .setTextColor(QColor)=>TextEdit의 글자색을 바꿉니다. Parameter에는 QColor형식의 객체가 들어갑니다.
18 .setFontItalic(Boolean)=>TextEdit에 쓰여있는 글자를 기울입니다. Parameter에는 True/False값이 들어가며, True일 때 글자가 기울여집니다.
19 .setFontUnderline(Boolean)=>TextEdit의 글자에 밑줄을 적용합니다. Parameter에는 True/False값이 들어가며, True일 때 글자에 밑줄이 쳐집니다.
20 .setFontPointSize(size)=>TextEdit의 글자 크기를 변경합니다. Parameter에는 글자의 크기(숫자)가 들어갑니다.
21 
22 QFont
23 from PyQt5.QtGui import *
24 fontVar = QFont(FontName)
25 fontVar = QFont(FontName, Size)
26 
27 .toPlainText()=>PlainTextEdit에 쓰여있는 글자를 가져옵니다.
28 .setPlainText(String)=>PlainTextEdit에 글을 새로 입력합니다. Parameter에는 PlainTextEdit에 표시할 글자가 들어갑니다.
29 .appendPlainText(String)=>PlainTextEdit에 글자를 추가합니다. 추가된 글자는 다음줄에 표시되며, Parameter에는 추가할 글자가 들어갑니다.
30 .clear()=>PlainTextEdit에 쓰여있는 글자를 지웁니다.
31 
32 QColor
33 from PyQt5.QtGui import *
34 colorVar = QColor(Red, Green, Blue, Alpha)
35 
36 colorVar=>QColor의 객체이름을 의미합니다.
37 Red=>RGB 색상 중 Red값을 의미하며, 0부터 255사이의 정수가 들어갑니다. 값이 클 수록 빨강이 진하게 보여집니다.
38 Green=>RGB색상 중 Green값을 의미하며, 0부터 255사이의 정수가 들어갑니다. 값이 클 수록 초록이 진하게 보여집니다.
39 Blue=>RGB색상 중 Blue값을 의미하며, 0부터 255사이의 정수가 들어갑니다. 값이 클 수록 파랑이 진하게 보여집니다.
40 Alpha=>투명도를 의미하는 값으로 0부터 255사이의 정수가 들어갑니다. 기본값인:255 255:불투명, 0:투명
41 
42 """
43 import sys
44 from PyQt5.QtWidgets import *
45 from PyQt5.QtGui import *
46 from PyQt5 import uic
47 
48 form_class = uic.loadUiType("L007.TextEdit.ui")[0]
49 
50 class WindowClass(QMainWindow, form_class) :
51     def __init__(self) :
52         super().__init__()
53         self.setupUi(self)
54         self.fontSize = 10
55 
56         #TextEdit과 관련된 버튼에 기능 연결
57         self.btn_get.clicked.connect(self.fun_text_get)
58         self.btn_clear.clicked.connect(self.fun_text_clear)
59         self.btn_Italic.clicked.connect(self.fun_Italic)
60         self.btn_ColorRed.clicked.connect(self.fun_ColorRed)
61         self.btn_setFont.clicked.connect(self.fun_setFont)
62         self.btn_font_sizeup.clicked.connect(self.fun_font_sizeup)
63         self.btn_font_sizedown.clicked.connect(self.fun_font_sizedown)
64 
65     def fun_text_get(self) :
66         print(self.textEdit.toPlainText())#获取文本内容
67 
68     def fun_text_clear(self) :
69         self.textEdit.clear()#清数据
70 
71     def fun_setFont(self) :
72         fontvar = QFont("Apple SD Gothic Neo",10)
73         self.textEdit.setCurrentFont(fontvar) #设置格式
74 
75     def fun_Italic(self) :
76         self.textEdit.setFontItalic(True)#斜体
77 
78     def fun_ColorRed(self) :
79         colorvar = QColor(255,0,0)
80         self.textEdit.setTextColor(colorvar)#改变颜色
81 
82     def fun_font_sizeup(self) :
83         self.fontSize = self.fontSize + 1
84         self.textEdit.setFontPointSize(self.fontSize) #字体变大
85 
86     def fun_font_sizedown(self) :
87         self.fontSize = self.fontSize - 1
88         self.textEdit.setFontPointSize(self.fontSize)#字体变小
89 
90 if __name__ == "__main__" :
91     app = QApplication(sys.argv)
92     myWindow = WindowClass()
93     myWindow.show()
94     app.exec_() 

 comboBox

 

 1 #QComboBox
 2 """
 3 self.ComboBox이름.currentIndexChanged.connect(함수) #信号
 4 
 5 获取
 6 .currentIndex()->현재 ComboBox에서 선택된 항목의 Index를 반환합니다.
 7 .currentText()->현재 ComboBox에서 선택된 항목의 글자를 반환합니다.
 8 .count()->ComboBox에 몇개의 항목이 있는지를 그 개수를 반환합니다.
 9 .itemText(index)->Index번째에 어떤 항목이 있는지 그 글자를 반환합니다. Parameter로 찾을 항목의 Index를 입력받습니다.
10 
11 添加或删除
12 .addItem(String)->ComboBox의 맨 뒤에 항목을 추가합니다. Parameter로 추가할 항목의 글자를 입력받습니다.
13 .insertItem(index, String)->Index번째에 String이라는 항목을 추가합니다. Parameter로 항목을 추가할 위치(index)와 글자를 입력받습니다.
14 .removeItem(index)->index번째의 항목을 삭제합니다. Parameter로 삭제할 항목의 Index를 입력받습니다.
15 .clear()->ComboBox의 모든 항목을 삭제합니다.
16 """
17 import sys
18 from PyQt5.QtWidgets import *
19 from PyQt5 import uic
20 
21 form_class = uic.loadUiType("L008.ComboBox.ui")[0]
22 
23 class WindowsClass(QMainWindow,form_class):
24     def __init__(self):
25         super().__init__()
26         self.setupUi(self)
27         
28         #프로그램 실행 시 두개의 ComboBox를 동기화시키는 코드
29         self.syncComboBox()
30 
31         #ComboBox에 기능 연결
32         self.comboBox_1.currentIndexChanged.connect(self.comboBoxFunction)
33 
34         #버튼에 기능 연결
35         self.BTN_GET.clicked.connect(self.ComboBoxItem_Get)
36         self.BTN_CLR.clicked.connect(self.ComboBoxItem_Clr)
37         self.BTN_ADD.clicked.connect(self.ComboBoxItem_Add)
38         self.BTN_DELET.clicked.connect(self.ComboBoxItem_Del)
39         
40     def syncComboBox(self) :
41         for i in range(0,self.comboBox_1.count()) :
42             self.comboBox_2.addItem(self.comboBox_1.itemText(i)) #添加数据 
43 
44     def comboBoxFunction(self) :
45         self.label.setText(self.comboBox_1.currentText())#当前文字显示在label 上  
46         
47     def ComboBoxItem_Add(self) :
48         self.comboBox_1.addItem(self.lineEdit.text())#获取文本框内数据到comboBox 
49         self.comboBox_2.addItem(self.lineEdit.text())
50         #self.comboBox_1.insertItem(0,"111")
51         print("Item Added")
52 
53     def ComboBoxItem_Clr(self) :
54         self.comboBox_1.clear() #清理combobox 的全部数据
55         self.comboBox_2.clear()
56 
57     def ComboBoxItem_Get(self) :
58         print(self.comboBox_1.currentText())#选中comboBox的 内容并打印 
59 
60     def ComboBoxItem_Del(self) :
61         self.delidx = self.comboBox_2.currentIndex() #获得选中的index 
62         self.comboBox_1.removeItem(self.delidx) #移除
63         self.comboBox_2.removeItem(self.delidx)
64         print("Item Deleted")
65 
66 if __name__ == "__main__" :
67     app=QApplication(sys.argv)
68     myWindow=WindowsClass()
69     myWindow.show()
70     app.exec_()

 SpinBox, DoubleSpinBox

 

 

 1 """
 2 SpinBox, DoubleSpinBox
 3 Minumum : 이 SpinBox에서 가질 수 있는 최소값을 의미합니다.
 4 Maximum : 이 SpinBox에서 가질 수 있는 최대값을 의미합니다.
 5 SingleStep : 버튼을 눌렀을 때 숫자가 한번에 얼마나 늘어나고 줄어들지를 지정합니다.
 6 Value : SpinBox에서 값을 조절하지 않았을 때, 기본적으로 보여줄 값을 지정합니다.
 7 
 8 self.SpinBox/DoubleSpinBox이름.valueChanged.connect(함수)
 9 
10 현재 상태의 반환
11 .value()->현재 SpinBox에 있는 값을 반환합니다.
12 .minimum()->현재 SpinBox의 최솟값을 반환합니다.
13 .maximum()->현재 SpinBox의 최댓값을 반환합니다.
14 .singleStep()->현재 SpinBox의 singleStep의 크기를 반환합니다.
15 
16 SpinBox의 상태 변경
17 .setRange(min,max)->SpinBox의 최대,최솟값을 변경합니다. 
18     Parameter로 SpinBox의 새로운 최솟값과 최댓값을 입력받습니다.
19     QSpinBox에서는 정수값을, QDoubleSpinBox에서는 실수값을 입력할 수 있습니다.
20 .setSingleStep(Value)->SpinBox의 Step크기를 변경합니다. 
21     Parameter로 새로운 Step의 값을 입력받습니다. 
22     QSpinBox에서는 정수값을, QDoubleSpinBox에서는 실수값을 입력할 수 있습니다.
23 
24 """
25 
26 import sys
27 from PyQt5.QtWidgets import *
28 from PyQt5 import uic
29 form_class = uic.loadUiType("L009.SpinBox_DoubleSpinBox.ui")[0]
30 
31 class WindowClass(QMainWindow, form_class) :
32     def __init__(self) :
33         super().__init__()
34         self.setupUi(self)
35         
36         self.spinBox.valueChanged.connect(self.spinBox_Val)
37         self.BTN1_INFO.clicked.connect(self.spinBox_Info)
38         self.BTN1_CHAN.clicked.connect(self.spinBox_Change)
39 
40         self.doubleSpinBox.valueChanged.connect(self.doubleSpinBox_Val)
41         self.BTN2_INFO.clicked.connect(self.doubleSpinBox_Info)
42         self.BTN2_CHAN.clicked.connect(self.doubleSpinBox_Change)
43         
44         
45     def spinBox_Val(self):
46         print(self.spinBox.value()) #获取 值
47         
48     def spinBox_Info(self): #最大值,最小值, 不进
49         print("Maximum value is",self.spinBox.maximum())
50         print("Minimum value is",self.spinBox.minimum())
51         print("Step Size is",self.spinBox.singleStep())
52         
53     def spinBox_Change(self):
54         self.spinBox.setRange(0,1000)#设置范围
55         self.spinBox.setSingleStep(10)#设置不进    
56         
57     def doubleSpinBox_Val(self):
58         print(self.doubleSpinBox.value()) #获取 值
59         
60     def doubleSpinBox_Info(self): #最大值,最小值, 不进
61         print("Maximum value is",self.doubleSpinBox.maximum())
62         print("Minimum value is",self.doubleSpinBox.minimum())
63         print("Step Size is",self.doubleSpinBox.singleStep())
64         
65     def doubleSpinBox_Change(self):
66         self.doubleSpinBox.setRange(0,100)#设置范围
67         self.doubleSpinBox.setSingleStep(1.5)#设置不进
68         
69 
70 
71 if __name__ == "__main__" :
72     app = QApplication(sys.argv)
73     myWindow = WindowClass()
74     myWindow.show()
75     app.exec_() 

 

 Slider,Dial

  1 """
  2 Slider,Dial
  3 Value : QSlider의 값을 의미합니다.
  4 Minumum : QSlider가 가질 수 있는 가장 작은 값을 의미합니다.
  5 Maximum : Qslider가 가질 수 있는 가장 큰 값을 의미합니다.
  6 SingleStep : Slider를 옮기거나, 방향키를 눌러 이동할 수 있는 최소한의 값을 의미합니다.
  7 PageStep : SingleStep보다는 조금 큰 개념으로 Page Up/Down등의 키를 눌렀을 때 이동할 수 있는 값을 의미합니다.
  8 
  9 Slider와 Dial의 Slider가 움직였을 때 기능 실행
 10 self.Slider/Dial이름.sliderMoved.connect(함수)
 11 
 12 Slider와 Dial의 값이 바뀌었을 때 기능 실행
 13 self.Slider/Dial이름.valueChanged.connect(함수)
 14 
 15 Slider와 Dial의 범위가 바뀌었을 때 기능 실행
 16 self.Slider/Dial이름.rangeChanged.connect(함수)
 17 
 18 현재 상태의 반환  str()를 이용하여 String형(문자열)로 바꾼후 사용
 19 .value()->Slider 혹은 Dial의 현재값을 반환합니다.
 20 .minimum()->Slider 혹은 Dial의 최솟값을 반환합니다.
 21 .maximum()->Slider 혹은 Dial의 최댓값을 반환합니다.
 22 .singleStep()->Slider 혹은 Dial의 singleStep의 크기를 반환합니다.
 23 .pageStep()->Slider 혹은 Dial의 pageStep의 크기를 반환합니다.
 24 
 25 Slider와 Dial의 상태 변경
 26 .setMaximum(Max)->Slider, Dial의 최댓값을 설정합니다. Parameter로 Slider와 Dial의 새로운 최댓값을 입력받습니다.
 27 .setMinimum(Min)->Slider, Dial의 최솟값을 설정합니다. Parameter로 Slider와 Dial의 새로운 최솟값을 입력받습니다.
 28 .setSingleStep(Value)->Slider, Dial의 SingleStep의 크기를 설정합니다. Parameter로 Slider와 Dial의 새로운 SIngleStep의 값을 입력받습니다.
 29 .setPageStep(Value)->Slider, Dial의 PageStep을 설정합니다. Parameter로 Slider와 Dial의 새로운 PageStep을 입력받습니다.
 30 .setRange(Max,Min)->Slider, Dial의 범위를 변경합니다. Parameter로 Slider와 Dial의 새로운 최댓값과 최솟값을 입력받습니다.
 31 .setValue(Value)->Slider, Dial의 값을 설정합니다. Parameter로 Slider와 Dial의 값을 입력받습니다.
 32 """
 33 
 34 import sys
 35 from PyQt5.QtWidgets import *
 36 from PyQt5 import uic
 37 
 38 form_class = uic.loadUiType("L010.Slider_Dial.ui")[0]
 39 
 40 class WindowClass(QMainWindow, form_class) :
 41     def __init__(self) :
 42         super().__init__()
 43         self.setupUi(self)
 44 
 45         #Vertical Slider의 시그널 사용
 46         self.verticalSlider.valueChanged.connect(self.showVerticalSliderValue)
 47         self.verticalSlider.rangeChanged.connect(self.printRangeChanged)
 48 
 49         #Horizontal Slider의 시그널 사용
 50         self.horizontalSlider.valueChanged.connect(self.showHorizontalSliderValue)
 51         self.horizontalSlider.rangeChanged.connect(self.printRangeChanged)
 52 
 53         #Dial의 시그널 사용
 54         self.dial.valueChanged.connect(self.showDialValue)#valueChanged 改变值
 55         self.dial.rangeChanged.connect(self.printRangeChanged)#rangeChanged 改变范围
 56 
 57         #버튼에 기능 연결
 58         self.btn_v_info.clicked.connect(self.getVerticalInfo)
 59         self.btn_v_range.clicked.connect(self.setVertical)
 60         self.btn_h_info.clicked.connect(self.getHorizontalInfo)
 61         self.btn_h_range.clicked.connect(self.setHorizontal)
 62         self.btn_d_info.clicked.connect(self.getDialInfo)
 63         self.btn_d_range.clicked.connect(self.setDial)
 64 
 65     def printRangeChanged(self) :
 66         print("Range Changed")
 67 
 68     #Vertical Slider에 관련된 함수들
 69 
 70     def showVerticalSliderValue(self) :
 71         #Vertical Slider의 시그널 이용 - Vertical Slider의 값이 변경되면 Label에 값을 표시
 72         self.label_v_val.setText(str(self.verticalSlider.value()))
 73 
 74     def getVerticalInfo(self) :
 75         #Vertical Slider의 최대/최솟값과 PageStep/SingleStep값을 출력합니다.
 76         print("Maximum : " + str(self.verticalSlider.maximum()))
 77         print("Minimum : " + str(self.verticalSlider.minimum()))
 78         print("PageStep : " + str(self.verticalSlider.pageStep()))
 79         print("SingleStep : " + str(self.verticalSlider.singleStep()))
 80 
 81     def setVertical(self) :
 82         #Vertical Slider의 최대/최솟값과 PageStep/SingleStep값을 변경합니다.
 83         self.verticalSlider.setMaximum(500)
 84         self.verticalSlider.setMinimum(-500)
 85         self.verticalSlider.setPageStep(100)
 86         self.verticalSlider.setSingleStep(20)
 87 
 88 
 89     #Horizontal Slider에 관련된 함수들
 90 
 91     def showHorizontalSliderValue(self) :
 92         #Horizontal Slider의 시그널 이용 - Horizontal Slider의 값이 변경되면 Label에 값을 표시
 93         self.label_h_val.setText(str(self.horizontalSlider.value()))
 94 
 95     def getHorizontalInfo(self) :
 96         #Horizontal Slider의 최대/최솟값과 PageStep/SingleStep값을 출력합니다.
 97         print("Maximum : " + str(self.horizontalSlider.maximum()))
 98         print("Minimum : " + str(self.horizontalSlider.minimum()))
 99         print("PageStep : " + str(self.horizontalSlider.pageStep()))
100         print("SingleStep : " + str(self.horizontalSlider.singleStep()))
101 
102     def setHorizontal(self) :
103         #Horizontal Slider의 최대/최솟값과 PageStep/SingleStep값을 변경합니다.
104         self.horizontalSlider.setMaximum(500) #设置最大值
105         self.horizontalSlider.setMinimum(-500) #设置最小值
106         self.horizontalSlider.setPageStep(100)
107         self.horizontalSlider.setSingleStep(20) #一次不进
108 
109     #Dial에 관련된 함수들
110     def showDialValue(self) :
111         #Dial의 시그널 이용 - Dial의 값이 변경되면 Label에 값을 표시
112         self.label_dial.setText(str(self.dial.value()))
113 
114     def getDialInfo(self) :
115         #Dial의 최대/최솟값과 PageStep/SingleStep값을 출력합니다.
116         print("Maximum : " + str(self.dial.maximum()))
117         print("Minimum : " + str(self.dial.minimum()))
118         print("PageStep : " + str(self.dial.pageStep()))
119         print("SingleStep : " + str(self.dial.singleStep()))
120 
121     def setDial(self) :
122         #Dial의 최대/최솟값과 PageStep/SingleStep값을 변경합니다.
123         self.dial.setMaximum(500)
124         self.dial.setMinimum(-500)
125         self.dial.setPageStep(100)
126         self.dial.setSingleStep(20)
127 
128 
129 if __name__ == "__main__" :
130     app = QApplication(sys.argv)
131     myWindow = WindowClass()
132     myWindow.show()
133     app.exec_()

 

DateTimeEdit

 

  1 """
  2 DateTimeEdit
  3 DateTimeEdit의 날짜와 시간이 바뀌었을 때 기능 실행
  4 self.DateTimeEdit이름.dateTimeChanged.connect(함수)
  5 
  6 DateTimeEdit의 날짜가 바뀌었을 때 기능 실행
  7 self.DateTimeEdit이름.dateChanged.connect(함수)
  8 
  9 DateTimeEdit의 시간이 바뀌었을 때 기능 실행
 10 self.DateTimeEdit이름.timeChanged.connect(함수)
 11 
 12 
 13 표시예는 [2019-01-14 월요일 오후 8시 7분 6초] 를 표시한다고 가정합니다.
 14 
 15 연도->yyyy->연도를 전체 다 표시합니다->2019
 16 월->MM->월을 숫자로 표시합니다->01
 17 월->MMM->월을 영어단어 약자로 표시합니다->Jan
 18 월->MMMM->월을 영어단어로 표시합니다->January
 19 일->dd->일을 숫자로 표시합니다->14
 20 일->ddd->요일을 영어단어 약자로 표시합니다->Mon
 21 일->dddd->요일을 영어단어로 표시합니다->Monday
 22 시간->AP->AM/PM(오전/오후)를 표시합니다->AP사용 - 8 PM, AP미사용 - 20시
 23 시간->h->시간을 표시합니다->8
 24 시간->hh->시간을 표시합니다. 시간이 한자리수 일 경우, 앞에 0을 붙입니다.->08
 25 분->m->분을 표시합니다->7
 26 분->mm->분을 표시합니다. 분이 한자리수 일 경우, 앞에 0을 붙입니다.->07
 27 초->s->초를 표시합니다->6
 28 초->ss->초를 표시합니다. 초가 한자리수 일 경우, 앞에 0을 붙입니다.->06
 29 
 30 
 31 현재 상태의 반환
 32 .dateTime()->QDateTimeEdit의 날짜, 시간값을 반환합니다. QDateTime형태의 객체가 반환됩니다.
 33 .date()->QDateTimeEdit의 날짜값을 반환합니다. QDate형태의 객체가 반환됩니다.
 34 .time()->QDateTimeEdit의 시간값을 반환합니다. QTime형태의 객체가 반환됩니다.
 35 .maximumDateTime()->QDateTimeEdit의 날짜/시간값의 최댓값을 반환합니다. QDateTime형태의 객체가 반환됩니다.
 36 .maximumDate()->QDateTimeEdit의 날짜값의 최댓값을 반환합니다. QDate형태의 객체가 반환됩니다.
 37 .maximumTime()->QDateTimeEdit의 시간값의 최댓값을 반환합니다. QTime형태의 객체가 반환됩니다.
 38 .minimumDateTime()->QDateTimeEdit의 날짜/시간값의 최솟값을 반환합니다. QDateTime형태의 객체가 반환됩니다.
 39 .minimumDate()->QDateTimeEdit의 날짜값의 최솟값을 반환합니다. QDate형태의 객체가 반환됩니다.
 40 .minimumTime()->QDateTimeEdit의 시간값의 최솟값을 반환합니다. QTime형태의 객체가 반환됩니다.
 41 ex:
 42 self.dateTimeVar = self.dateTimeEdit.dateTime()
 43 self.dateVar = self.dateTimeEdit.date()
 44 self.timeVar = self.dateTimeEdit.time()
 45 
 46 QDateTimeEdit의 값 변경
 47 .setDateTime(QDateTime)->QDateTimeEdit의 날짜/시간값을 설정합니다. Parameter로 새로 설정할 날짜/시간값을 가진 QDateTime 객체가 필요합니다.
 48 .setDate(QDate)->QDateTimeEdit의 날짜값을 반환합니다. Parameter로 새로 설정할 날짜값을 가진 QDate 객체가 필요합니다.
 49 .setTime(QTime)->QDateTimeEdit의 시간값을 반환합니다. Parameter로 새로 설정할 시간값을 가진 QTime 객체가 필요합니다.
 50 
 51 QDateTimeEdit과 입력/표시 형식과 관련된 함수
 52 .calendarPopup()->QDateTimeEdit의 CalendarPopup이 속성이 참인지, 거짓인지를 반환해줍니다.
 53 .setCalendarPopup(bool)->QDateTimeEdit의 CalendarPopup 속성을 변경할 수 있는 함수입니다. Parameter로 True/False 값이 들어갑니다.
 54 .setDisplayFormat(Format Text)->QDateTimeEdit이 어떤 형식으로 날짜와 시간을 보여줄지를 설정합니다. Parameter로 형식문자가 들어갑니다.
 55 
 56 QDateTimeEdit의 날짜/시간의 최대/최소에 관련된 함수들
 57 .setDateTimeRange(min, max)->QDateTimeEdit의 날짜/시간 범위를 설정합니다. Parameter로 날짜/시간의 최솟값, 최댓값을 입력받습니다.
 58 .setDateRange(min, max)->QDateTimeEdit의 날짜 범위를 설정합니다. Parameter로 날짜의 최솟값, 최댓값을 입력받습니다.
 59 .setTimeRange(min, max)->QDateTimeEdit의 시간 범위를 설정합니다. Parameter로 시간의 최솟값, 최댓값을 입력받습니다.
 60 .setMaximumDateTime(max)->QDateTimeEdit의 날짜/시간값의 최댓값을 설정합니다. Parameter로 새로운 날짜/시간의 최댓값을 입력받습니다.
 61 .setMaximumDate(max)->QDateTimeEdit의 날짜값의 최댓값을 설정합니다. Parameter로 새로운 날짜의 최댓값을 입력받습니다.
 62 .setMaximumTime(max)->QDateTimeEdit의 시간값의 최댓값을 설정합니다. Parameter로 새로운 시간의 최댓값을 입력받습니다.
 63 .setMinimumDateTime(min)->QDateTimeEdit의 날짜/시간값의 최솟값을 설정합니다. Parameter로 새로운 날짜/시간의 최솟값을 입력받습니다.
 64 .setMinimumDate(min)->QDateTimeEdit의 날짜값의 최솟값을 설정합니다. Parameter로 새로운 날짜의 최솟값을 입력받습니다.
 65 .setMinimumTime(min)->QDateTimeEdit의 시간값의 최솟값을 설정합니다. Parameter로 새로운 시간의 최솟값을 입력받습니다.
 66 .clearMaximumDateTime()->QDateTimeEdit의 날짜/시간값의 최댓값을 기본값으로 변경합니다. 기본값은 7999년 12월 31일 23시 59분 59초입니다.
 67 .clearMaximumDate()->QDateTimeEdit의 날짜값의 최댓값을 기본값으로 변경합니다. 기본값은 7999년 12월 31일 입니다.
 68 .clearMaximumTime()->QDateTimeEdit의 시간값의 최댓값을 기본값으로 변경합니다. 기본값은 23시 59분 59초입니다.
 69 .clearMinimumDateTime()->QDateTimeEdit의 날짜/시간값의 최솟값을 기본값으로 변경합니다. 기본값은 1752년 9월 14일 0시 0분 0초 입니다.
 70 .clearMinimumDate()->QDateTimeEdit의 날짜값의 최솟값을 기본값으로 변경합니다. 기본값은 1752년 9월 14일 입니다.
 71 .clearMinimumTime()->QDateTimeEdit의 시간값의 최솟값을 기본값으로 변경합니다. 기본값은 0시 0분 0초 입니다.
 72 
 73 """
 74 
 75 import sys
 76 from PyQt5.QtWidgets import *
 77 from PyQt5.QtCore import *
 78 from PyQt5 import uic
 79 
 80 form_class = uic.loadUiType("L011.DateTimeEdit.ui")[0]
 81 
 82 class WindowClass(QMainWindow, form_class) :
 83     def __init__(self) :
 84         super().__init__()
 85         self.setupUi(self)
 86 
 87         #프로그램이 실행되면 DateTimeEdit의 값이 현재 날짜/시간으로 설정되게 하기
 88         self.currentDateTime = QDateTime.currentDateTime()
 89         self.dateTimeEdit_Test.setDateTime(self.currentDateTime)
 90 
 91         #버튼들에 기능 할당
 92         self.btn_displayDateTime.clicked.connect(self.displayDateTime)
 93         self.btn_enterDateTime.clicked.connect(self.enterDateTimeFunc)
 94         self.btn_enterDate.clicked.connect(self.enterDateFunc)
 95         self.btn_enterTime.clicked.connect(self.enterTimeFunc)
 96         self.btn_changeFormat.clicked.connect(self.changeDisplayFormat)
 97         self.btn_showRange.clicked.connect(self.showRangeFunc)
 98         self.btn_editMaximum.clicked.connect(self.extendMaximum)
 99         self.btn_editMinimum.clicked.connect(self.extendMinimum)
100 
101     def displayDateTime(self) :
102         #DateTimeEdit의 값을 사용할 때는 아래와 같이 객체를 만들고, 그 객체에 값을 저장한 후 사용해야 합니다.
103         self.displayDateTimeVar = self.dateTimeEdit_Test.dateTime()
104         self.displayDateVar = self.dateTimeEdit_Test.date()
105         self.displayTimeVar = self.dateTimeEdit_Test.time()
106 
107         #QDateTime, QDate, QTime 객체들의 값을 Label에 표시합니다.
108         #toString 함수는 02.12QDateTimeEdit의 하위페이지에 있는 QDateTime, QDate, QTime 함수를 참고하시기 바랍니다.
109         self.lbl_displayDateTime.setText(self.displayDateTimeVar.toString("yyyy-MM-dd AP hh:mm:ss"))
110         self.lbl_displayDate.setText(self.displayDateVar.toString("yyyy-MM-dd"))
111         self.lbl_displayTime.setText(self.displayTimeVar.toString("AP hh:mm:ss"))
112 
113     def enterDateTimeFunc(self) :
114         #LineEdit에서 글자를 가져온 후, fromString 함수를 이용해서 QDateTime객체를 만듭니다.
115         #그 후, setDateTime 함수를 이용해 DateTimeEdit에 적용합니다.
116         self.enterDateTimeText = self.line_dateTime.text()
117         self.enterDateTimeVar = QDateTime.fromString(self.enterDateTimeText, "yyyy-MM-dd AP hh:mm:ss")
118         self.dateTimeEdit_Test.setDateTime(self.enterDateTimeVar)
119 
120     def enterDateFunc(self) :
121         #LineEdit에서 글자를 가져온 후, fromString 함수를 이용해서 QDate객체를 만듭니다.
122         #그 후, setDate 함수를 이용해 DateTimeEdit에 적용합니다.
123         self.enterDateText = self.line_date.text()
124         self.enterDateVar = QDate.fromString(self.enterDateText, "yyyy-MM-dd")
125         self.dateTimeEdit_Test.setDate(self.enterDateVar)
126 
127     def enterTimeFunc(self) :
128         #LineEdit에서 글자를 가져온 후, fromString 함수를 이용해서 QTime객체를 만듭니다.
129         #그 후, setTime 함수를 이용해 DateTimeEdit에 적용합니다.
130         self.enterTimeText = self.line_time.text()
131         self.enterTimeVar = QTime.fromString(self.enterTimeText, "AP hh:mm:ss")
132         self.dateTimeEdit_Test.setTime(self.enterTimeVar)
133 
134     def changeDisplayFormat(self) :
135         #LineEdit에서 글자를 가져온 후, 그 글자를 DateTimeEdit의 형식문자로 지정합니다.
136         self.displayFormatText = self.line_displayFormat.text()
137         self.dateTimeEdit_Test.setDisplayFormat(self.displayFormatText)
138 
139     def showRangeFunc(self) :
140         print(self.dateTimeEdit_Test.minimumDateTime())
141         print(self.dateTimeEdit_Test.maximumDateTime())
142 
143     def extendMaximum(self) :
144         #DateTimeEdit의 현재 maximumDateTime을 가져옵니다.
145         #그 후 addDays 함수를 이용하여 최댓값을 10일 연장시킨 후, setMaximumDateTime을 이용하여 DateTimeEdit에 적용시킵니다.
146         self.currentMaximumDateTime = self.dateTimeEdit_Test.maximumDateTime()
147         self.currentMaximumDateTime = self.currentMaximumDateTime.addDays(10)
148         self.dateTimeEdit_Test.setMaximumDateTime(self.currentMaximumDateTime)
149 
150     def extendMinimum(self) :
151         #DateTimeEdit의 현재 minimumDateTime을 가져옵니다.
152         #그 후 addDays 함수를 이용하여 최솟값을 10일 뒤로 미룬 후, setMinimumDateTime을 이용하여 DateTimeEdit에 적용시킵니다.
153         self.currentMinimumDateTime = self.dateTimeEdit_Test.minimumDateTime()
154         self.currentMinimumDateTime = self.currentMinimumDateTime.addDays(-10)
155         self.dateTimeEdit_Test.setMinimumDateTime(self.currentMinimumDateTime)
156 
157 
158 if __name__ == "__main__" :
159     app = QApplication(sys.argv)
160     myWindow = WindowClass()
161     myWindow.show()
162     app.exec_() 

 DateEdit,TimeEdit

 

  1 #DateEdit,TimeEdit
  2 """
  3 DateEdit의 날짜가 바뀌었을 때 기능 실행
  4 self.DateEdit이름.dateChanged.connect(함수)
  5 
  6 TimeEdit의 시간이 바뀌었을 때 기능 실행
  7 self.TimeEdit이름.timeChanged.connect(함수)
  8 
  9 현재 상태의 반환
 10 .date()->QDateEdit의 날짜값을 반환합니다. QDate형태의 객체가 반환됩니다.
 11 .maximumDate()->QDateEdit의 날짜값의 최댓값을 반환합니다. QDate형태의 객체가 반환됩니다.
 12 .minimumDate()->QDateEdit의 날짜값의 최솟값을 반환합니다. QDate형태의 객체가 반환됩니다.
 13 self.dateVar = self.dateEdit.date()
 14 
 15 QDateEdit의 값과 입력/표시형식
 16 .setDate(QDate)->QDateEdit의 날짜값을 반환합니다. Parameter로 새로 설정할 날짜값을 가진 QDate 객체가 필요합니다.
 17 .calendarPopup()->QDateEdit의 CalendarPopup이 속성이 참인지, 거짓인지를 반환해줍니다.
 18 .setCalendarPopup(bool)->QDateEdit의 CalendarPopup 속성을 변경할 수 있는 함수입니다. Parameter로 True/False 값이 들어갑니다.
 19 .setDisplayFormat(Format Text)->QDateEdit이 어떤 형식으로 날짜와 시간을 보여줄지를 설정합니다. Parameter로 형식문자가 들어갑니다.
 20 
 21 QDateEdit의 최대/최소에 관련된 함수들
 22 .setDateRange(min, max)->QDateEdit의 날짜 범위를 설정합니다. Parameter로 날짜의 최솟값, 최댓값을 입력받습니다.
 23 .setMaximumDate(max)->QDateEdit의 날짜값의 최댓값을 설정합니다. Parameter로 새로운 날짜의 최댓값을 입력받습니다.
 24 .setMinimumDate(min)->QDateEdit의 날짜값의 최솟값을 설정합니다. Parameter로 새로운 날짜의 최솟값을 입력받습니다.
 25 .clearMaximumDate()->QDateEdit의 날짜값의 최댓값을 기본값으로 변경합니다. 기본값은 7999년 12월 31일 입니다.
 26 .clearMinimumDate()->QDateEdit의 날짜값의 최솟값을 기본값으로 변경합니다. 기본값은 1752년 9월 14일 입니다.
 27 
 28 
 29 QTimeEdit의 함수
 30 .time()->QTimeEdit의 시간값을 반환합니다. QTime형태의 객체가 반환됩니다.
 31 .maximumTime()->QTimeEdit의 시간값의 최댓값을 반환합니다. QTime형태의 객체가 반환됩니다.
 32 .minimumTime()->QTimeEdit의 시간값의 최솟값을 반환합니다. QTime형태의 객체가 반환됩니다.
 33 self.timeVar = self.timeEdit.time()
 34 
 35 QDateEdit의 값과 표시형식
 36 .setTime(QTime)->QTimeEdit의 시간값을 반환합니다. Parameter로 새로 설정할 시간값을 가진 QTime 객체가 필요합니다.
 37 .setDisplayFormat(Format Text)->QTimeEdit이 어떤 형식으로 날짜와 시간을 보여줄지를 설정합니다. Parameter로 형식문자가 들어갑니다.
 38 
 39 QTimeEdit의 시간의 최대/최소에 관련된 함수들
 40 .setTimeRange(min, max)->QTimeEdit의 시간 범위를 설정합니다. Parameter로 시간의 최솟값, 최댓값을 입력받습니다.
 41 .setMaximumTime(max)->QTimeEdit의 시간값의 최댓값을 설정합니다. Parameter로 새로운 시간의 최댓값을 입력받습니다.
 42 .setMinimumTime(min)->QTimeEdit의 시간값의 최솟값을 설정합니다. Parameter로 새로운 시간의 최솟값을 입력받습니다.
 43 .clearMaximumTime()->QTimeEdit의 시간값의 최댓값을 기본값으로 변경합니다. 기본값은 23시 59분 59초입니다.
 44 .clearMinimumTime()->QTimeEdit의 시간값의 최솟값을 기본값으로 변경합니다. 기본값은 0시 0분 0초 입니다.
 45 
 46 """
 47 
 48 import sys
 49 from PyQt5.QtWidgets import *
 50 from PyQt5.QtCore import *
 51 from PyQt5 import uic
 52 
 53 form_class = uic.loadUiType("L012.DateEdit_TimeEdit.ui")[0]
 54 
 55 class WindowClass(QMainWindow, form_class) :
 56     def __init__(self) :
 57         super().__init__()
 58         self.setupUi(self)
 59 
 60         #프로그램이 실행되면 DateEdit의 값이 현재 날짜/시간으로 설정되게 하기
 61         self.currentDate = QDate.currentDate()
 62         self.dateEdit_Test.setDate(self.currentDate)
 63         
 64         #프로그램이 실행되면 TimeEdit의 값이 현재 날짜/시간으로 설정되게 하기
 65         self.currentTime = QTime.currentTime()
 66         self.timeEdit_Test.setTime(self.currentTime)
 67 
 68         #버튼들에 기능 할당
 69         self.btn_time_display.clicked.connect(self.time_display)
 70         self.btn_time_enter.clicked.connect(self.time_enterFunc)
 71         self.btn_time_changeFormat.clicked.connect(self.time_changeDisplayFormat)
 72 
 73         #버튼들에 기능 할당
 74         self.btn_date_display.clicked.connect(self.date_display)
 75         self.btn_date_enter.clicked.connect(self.date_enterFunc)
 76         self.btn_date_changeFormat.clicked.connect(self.date_changeDisplayFormat)
 77         self.btn_date_showRange.clicked.connect(self.date_showRangeFunc)
 78         self.btn_date_editMaximum.clicked.connect(self.date_extendMaximum)
 79         self.btn_date_editMinimum.clicked.connect(self.date_extendMinimum)
 80 
 81     def date_display(self) :
 82         self.displayDateVar = self.dateEdit_Test.date()
 83         self.lbl_date_display.setText(self.displayDateVar.toString("yyyy-MM-dd"))
 84 
 85     def date_enterFunc(self) :
 86         #LineEdit에서 글자를 가져온 후, fromString 함수를 이용해서 QDate객체를 만듭니다.
 87         #그 후, setDate 함수를 이용해 DateEdit에 적용합니다.
 88         self.enterDateText = self.line_date.text()
 89         self.enterDateVar = QDate.fromString(self.enterDateText, "yyyy-MM-dd")
 90         self.dateEdit_Test.setDate(self.enterDateVar)
 91     
 92     def date_changeDisplayFormat(self) :
 93         #LineEdit에서 글자를 가져온 후, 그 글자를 DateEdit의 형식문자로 지정합니다.
 94         self.displayFormatText = self.line_date_displayFormat.text()
 95         self.dateEdit_Test.setDisplayFormat(self.displayFormatText)
 96 
 97     def date_showRangeFunc(self) :
 98         print(self.dateEdit_Test.minimumDate())
 99         print(self.dateEdit_Test.maximumDate())
100 
101     def date_extendMaximum(self) :
102         #DateEdit의 현재 maximumDate을 가져옵니다.
103         #그 후 addDays 함수를 이용하여 최댓값을 10일 연장시킨 후, setMaximumDate을 이용하여 DateEdit에 적용시킵니다.
104         self.currentMaximumDate = self.dateEdit_Test.maximumDate()
105         self.currentMaximumDate = self.currentMaximumDate.addDays(10)
106         self.dateEdit_Test.setMaximumDate(self.currentMaximumDate)
107 
108     def date_extendMinimum(self) :
109         #DateEdit의 현재 minimumDate을 가져옵니다.
110         #그 후 addDays 함수를 이용하여 최솟값을 10일 뒤로 미룬 후, setMinimumDate을 이용하여 DateEdit에 적용시킵니다.
111         self.currentMinimumDate = self.dateEdit_Test.minimumDate()
112         self.currentMinimumDate = self.currentMinimumDate.addDays(-10)
113         self.dateEdit_Test.setMinimumDate(self.currentMinimumDate)
114         
115     def time_display(self) :
116         self.displayTimeVar = self.timeEdit_Test.time()
117         self.lbl_time_display.setText(self.displayTimeVar.toString("AP hh:mm:ss"))
118 
119     def time_enterFunc(self) :
120         #LineEdit에서 글자를 가져온 후, fromString 함수를 이용해서 QTime객체를 만듭니다.
121         #그 후, setTime 함수를 이용해 TimeEdit에 적용합니다.
122         self.enterTimeText = self.line_time.text()
123         self.enterTimeVar = QTime.fromString(self.enterTimeText, "AP hh:mm:ss")
124         self.timeEdit_Test.setTime(self.enterTimeVar)
125     
126     def time_changeDisplayFormat(self) :
127         #LineEdit에서 글자를 가져온 후, 그 글자를 TimeEdit의 형식문자로 지정합니다.
128         self.displayFormatText = self.line_time_displayFormat.text()
129         self.timeEdit_Test.setDisplayFormat(self.displayFormatText)
130 
131 
132 if __name__ == "__main__" :
133     app = QApplication(sys.argv)
134     myWindow = WindowClass()
135     myWindow.show()
136     app.exec_() 

 

calendarWidget

 

 1 #CalendarWidget
 2 """
 3 CalendarWidget에서 날짜가 클릭되었을 때 기능 실행
 4 self.CalendarWidget이름.clicked.connect(함수)
 5 
 6 CalendarWidget에서 선택된 날짜가 바뀌었을 때 기능 실행
 7 self.CalendarWidget이름.selectionChanged.connect(함수)
 8 
 9 CalendarWidget에서 달력을 다른 페이지로 넘겼을 때 기능 실행
10 self.CalendarWidget이름.currentPageChanged.connect(함수)
11 
12 
13 현재 상태의 반환
14 .selectedDate()->QCalendarWidget에서 선택된 날짜를 반환합니다. 반환된 값은 QDate의 형식을 갖습니다.
15 .maximumDate()->QCalendarWidget에서 선택할 수 있는 날짜의 최댓값을 반환합니다. 반환된 값은 QDate의 형식을 갖습니다.
16 .minimumDate()->QCalendarWidget에서 선택할 수 있는 날짜의 최솟값을 반환합니다. 반환된 값은 QDate의 형식을 갖습니다.
17 .yearShown()->QCalendarWidget에서 현재 보여주고 있는 연도를 int 형식으로 반환합니다.
18 .monthShown()->QCalendarWidget에서 현재 보여주고 있는 월을 int 형식으로 반환합니다.
19 
20 Calendar의 페이지 이동
21 .setCurrentPage(year,month)->현재 페이지를 원하는 연도, 월로 이동합니다. Parameter로 이동하고자 하는 년도, 월의 값을 필요로 합니다.
22 .showNextYear()->현재 달력에서 내년의 달력을 보여주는 함수입니다.
23 .showNextMonth()->현재 달력에서 다음달의 달력을 보여주는 함수입니다.
24 .showPreviousYear()->현재 달력에서 작년의 달력을 보여주는 함수입니다.
25 .showPreviousMonth()->현재 달력에서 저번달의 달력을 보여주는 함수입니다.
26 .showToday()->오늘 날짜가 있는 달력을 보여주는 함수입니다.
27 
28 Calendar의 상태변경
29 .setSelectedDate(QDate)->원하는 날짜가 선택되게 하는 함수입니다. Parameter로 선택할 날짜의 값이 들어있는 QDate 형식의 객체를 필요로 합니다.
30 .setDateRange(min,max)->QCalendarWidget이 보여줄 날짜의 최대/최솟값을 설정합니다. Parameter로 날짜의 최솟값, 최댓값을 갖고 있는 QDate 형식의 객체가 필요합니다.
31 .setGridVisible(bool)->달력에서 그리드를 보여줄지를 결정합니다. Parameter로 True/False가 필요하며, True를 입력하면 달력에서 그리드를 보여주게 됩니다.
32 """
33 import sys
34 from PyQt5.QtWidgets import *
35 from PyQt5.QtCore import *
36 from PyQt5 import uic
37 
38 form_class = uic.loadUiType("L013.CalendarWidget.ui")[0]
39 
40 class WindowClass(QMainWindow, form_class) :
41     def __init__(self) :
42         super().__init__()
43         self.setupUi(self)
44 
45         #QCalendarWidget의 시그널
46         self.calendarWidget_Test.clicked.connect(self.calendarClicked)
47         self.calendarWidget_Test.currentPageChanged.connect(self.calendarPageChanged)
48         self.calendarWidget_Test.selectionChanged.connect(self.calendarSelectionChanged)        
49 
50         #QCalendarWidget이 자동으로 오늘 날짜가 있는 달력을 보여주게 설정
51         self.todayDate = QDate.currentDate()
52         self.calendarWidget_Test.setCurrentPage(self.todayDate.year(), self.todayDate.month())
53 
54         #버튼에 기능 연결
55         self.btn_prev.clicked.connect(self.prevMonth)
56         self.btn_next.clicked.connect(self.nextMonth)
57         self.btn_today.clicked.connect(self.today)
58 
59     #CalendarWidget의 시그널에 연결된 함수들
60     def calendarClicked(self) :
61         print(self.calendarWidget_Test.selectedDate())
62 
63     def calendarPageChanged(self) :
64         self.year = str(self.calendarWidget_Test.yearShown()) + ""
65         self.month = str(self.calendarWidget_Test.monthShown()) + ""
66         self.lbl_currentPage.setText(self.year + " " + self.month)
67 
68     def calendarSelectionChanged(self) :
69         self.selectedDateVar = self.calendarWidget_Test.selectedDate()
70         self.lbl_selectedDate.setText(self.selectedDateVar.toString())
71 
72     #버튼에 연결된 함수들
73     def prevMonth(self) :
74         self.calendarWidget_Test.showPreviousMonth()
75 
76     def nextMonth(self) :
77         self.calendarWidget_Test.showNextMonth()
78 
79     def today(self) :
80         self.calendarWidget_Test.showToday()
81 
82 
83 if __name__ == "__main__" :
84     app = QApplication(sys.argv)
85     myWindow = WindowClass()
86     myWindow.show()
87     app.exec_() 

 

 QPixmap用Label控件

 1 #QPixmap
 2 """
 3 QPixmap 객체의 생성
 4 Pixmap은 PyQt5.QtGui에 소속되어 있습니다.
 5 from PyQt5.QtGui import QPixmap 혹은 from PyQt5.QtGui import * 을 사용해야 합니다.
 6 
 7 QPixmap를 만들어주기 위해서는 위의 문구와 같이 QPixmap을 import 해주어야 합니다.
 8 QPixmap을 import 했다면, 다음과 같이 QPixmap 객체를 생성해줍니다.
 9 
10 from PyQt5.QtGui import *
11 qPixmapVar = QPixmap()
12 
13 QPixmap 객체에 이미지 불러오기 - 파일
14 qPixmapVar.load("사진파일경로")
15 
16 #상대경로 이용
17 qPixmapVar.load("testImage.jpg")
18 
19 #절대경로 이용
20 qPixmapVar.load("/Users/sebinlee/Desktop/Github/PyQt5forBeginner/02.15 Pixmap/testImage.jpg")
21 
22 qPixmapVar.loadFromData(사진 데이터가 있는 객체)
23 urllib.request를 import합니다.
24 urllib.request의 urlopen().read() 함수를 이용하여 이미지 데이터를 가져온 후, 이를 객체를 만들어 저장합니다.
25 2번에서 만든 객체와 .loadFromData()함수를 사용하여 QPixmap객체를 만듭니다.
26 import urllib.request
27 urlString = https://avatars1.githubusercontent.com/u/44885477?s=460&v=4
28 imageFromWeb = urllib.request.urlopen(urlString).read()
29 
30 import urllib.request
31 qPixmapVar = QPixmap()
32 qPixmapVar.loadFromDate(imageFromWeb)
33 label이름.setPixmap(QPixmap 객체)
34 
35 이미지의 Load/Save
36 .load(fileName)->이미지 파일에서 이미지를 가져오는 함수입니다. Parameter로 이미지의 경로를 문자열의 형태로 입력해야 합니다.
37 .loadFromData(Data)->이미지의 정보값을 갖고 있는 객체에서 이미지를 가져오는 함수입니다. Parameter로 이미지의 정보값을 갖고 있는 객체를 입력해야 합니다. 주로 Web에서 이미지를 가져올 때 많이 사용합니다.
38 .save(fileName)->QPixmap이 가지고 있는 이미지를 파일로 저장할 때 사용합니다. Parameter로 파일의 이름을 문자열의 형태로 입력해야 합니다.
39 
40 이미지의 크기와 관련된 함수
41 .scaled(width,height)->이미지의 가로, 세로 크기를 조절합니다. Parameter로 가로, 세로 크기값을 입력받습니다. 사진의 원본 비율을 무시하고 크기를 조정해야 할 때 사용하기 좋습니다.
42 .scaledToWidth(width)->이미지의 가로크기를 조절합니다. 이 함수를 이용할 경우 세로크기는 새로운 가로값에 따라서 자동으로 조절되며, 이미지의 가로세로 비율은 원본과 동일하게 유지됩니다. Parameter로 가로크기값을 입력합니다.
43 .scaledToHeight(height)->이미지의 세로크기를 조절합니다. 이 함수를 이용할 경우, 가로크기는 새로운 세로값에 따라서 자동으로 조절되며, 이미지의 가로세로 비율은 원본과 동일하게 유지됩니다. Parameter로 세로크기값을 입력합니다.
44 .size()->QPixmap이 가지고 있는 이미지의 크기를 QSize형식으로 반환합니다.
45 
46 Pixmap과 관련된 Label의 함수
47 .setPixmap(QPixmap)->Label의 영역에 사진을 표시합니다. Parameter로 표시할 이미지값을 가지고 있는 QPixmap객체가 필요합니다.
48 .pixmap()->Label이 표시하고 있는 사진을 반환합니다. 반환된 값은 QPixmap객체의 형식을 가집니다.
49 """
50 import sys
51 import urllib.request
52 from PyQt5.QtWidgets import *
53 from PyQt5.QtCore import *
54 from PyQt5.QtGui import *
55 from PyQt5 import uic
56 
57 form_class = uic.loadUiType("L014.Pixmap.ui")[0]
58 
59 class WindowClass(QMainWindow, form_class) :
60     def __init__(self) :
61         super().__init__()
62         self.setupUi(self)
63 
64         self.btn_LoadFromFile.clicked.connect(self.loadImageFromFile)
65         self.btn_LoadFromWeb.clicked.connect(self.loadImageFromWeb)
66         self.btn_Save.clicked.connect(self.saveImageFromWeb)
67 
68     def loadImageFromFile(self) :
69         #QPixmap 객체 생성 후 이미지 파일을 이용하여 QPixmap에 사진 데이터 Load하고, Label을 이용하여 화면에 표시
70         self.qPixmapFileVar = QPixmap()
71         self.qPixmapFileVar.load("testImage.png")
72         self.qPixmapFileVar = self.qPixmapFileVar.scaledToWidth(600)
73         self.lbl_picture.setPixmap(self.qPixmapFileVar)
74 
75     def loadImageFromWeb(self) :
76 
77         #Web에서 Image 정보 로드
78         urlString = "https://avatars1.githubusercontent.com/u/44885477?s=460&v=4"
79         imageFromWeb = urllib.request.urlopen(urlString).read()
80 
81         #웹에서 Load한 Image를 이용하여 QPixmap에 사진데이터를 Load하고, Label을 이용하여 화면에 표시
82         self.qPixmapWebVar = QPixmap()
83         self.qPixmapWebVar.loadFromData(imageFromWeb)
84         self.qPixmapWebVar = self.qPixmapWebVar.scaledToWidth(600)
85         self.lbl_picture.setPixmap(self.qPixmapWebVar)
86 
87     def saveImageFromWeb(self) :#保存照片
88         #Label에서 표시하고 있는 사진 데이터를 QPixmap객체의 형태로 반환받은 후, save함수를 이용해 사진 저장
89         self.qPixmapSaveVar = self.lbl_picture.pixmap()
90         self.qPixmapSaveVar.save("SavedImage.jpg")
91 
92 if __name__ == "__main__" :
93     app = QApplication(sys.argv)
94     myWindow = WindowClass()
95     myWindow.show()
96     app.exec_() 

 

QTimer

 1 #QTimer
 2 """
 3 from PyQt.QtCore import *
 4 timerVar = QTimer()
 5 
 6 QTimer의 조작과 관련된 함수
 7 .start()->QTimer가 시간을 체크하기 시작합니다.
 8 .start(msec)->QTimer가 Parameter만큼의 시간이 지난 후 시간을 체크하기 시작합니다. Parameter로 시간을 입력해야 하며, 단위는 ms입니다.
 9 .stop()->QTimer를 중지합니다.
10 
11 QTimer의 Interval과 관련된 함수
12 .setInterval(msec)->QTimer의 Interval을 설정합니다. Parameter로 Interval을 ms단위로 입력합니다.
13 .timeout.connect(함수)->매 Interval마다 어떤 함수를 실행할지를 결정합니다. 만약, setInterval 함수로 Interval을 설정하지 않은 경우, 1ms마다 함수가 반복됩니다.
14 
15 QTimer의 상태반환
16 .interval()->QTimer의 Interval을 반환합니다.
17 .isActive()->QTimer가 작동중인지 체크합니다. QTimer가 작동중이면 True를, 멈춰있으면 False를 반환합니다.
18 
19 """
20 from PyQt5.QtCore import *
21 time = 0# time이라는 변수를 만들고
22 def printTime() :#매 초마다 실행될 printTime()이라는 함수를 만듭니다
23     time += 1
24     print(time)
25 
26 timerVar = QTimer()
27 timerVar.setInterval(1000)
28 timerVar.timeout.connect(printTime)
29 timerVar.start()

 

ProgressBar

 1 #ProgressBar
 2 """
 3 QProgressBar의 값이 변경되었을 때 self.ProgressBar이름.valueChanged.connect(함수)
 4 
 5 QProgressBar의 값에 관련된 함수
 6 .value()->QProgressBar가 가지고 있는 현재값을 반환합니다.
 7 .setValue(Value)->QProgressBar에 새로운 Value값을 설정합니다. Parameter로 새로운 Value값이 필요합니다.
 8 .reset()->QProgressBar의 Value값을 초기화합니다. 이때 Value값은 QProgressBar의 최솟값 - 1을 한 값으로 초기화됩니다.
 9 
10 QProgressBar의 범위와 관련된 함수
11 .minimum()->QProgressBar의 최솟값을 반환합니다.
12 .maximum()->QProgressBar의 최댓값을 반환합니다.
13 .setMinimum(min)->QProgressBar의 최솟값을 새로 설정합니다. Parameter로 새로운 최솟값이 필요합니다.
14 .setMaximum(min)->QProgressBar의 최솟값을 새로 설정합니다. Parameter로 새로운 최댓값이 필요합니다.
15 .setRange(min,max)->QProgressBar의 최솟값과 최댓값을 새로 설정합니다. Parameter로 새로운 최솟값, 최댓값이 필요합니다.
16 """
17 import sys
18 from PyQt5.QtWidgets import *
19 from PyQt5.QtCore import *
20 from PyQt5.QtGui import *
21 from PyQt5 import uic
22 
23 form_class = uic.loadUiType("L015.ProgressBar.ui")[0]
24 
25 class WindowClass(QMainWindow, form_class) :
26     def __init__(self) :
27         super().__init__()
28         self.setupUi(self)
29 
30         #ProgressBar의 시그널
31         self.progressBar_Test.valueChanged.connect(self.printValue)
32 
33         #QTimer를 이용하여 매초마다 ProgressBar의 값이 1씩 늘어나게 설정합니다.
34         #QTimer의Interval을 1000으로 설정한 후, ProgrssBar의 값이 늘어나게 하는 함수를 연결하고 QTimer를 시작합니다.
35         #QTimer에 대한 설명은 02.17.01 QTimer에서 보실 수 있습니다.
36         self.timerVar = QTimer()
37         self.timerVar.setInterval(1000)
38         self.timerVar.timeout.connect(self.progressBarTimer)
39         self.timerVar.start()
40 
41     def progressBarTimer(self) :
42         self.time = self.progressBar_Test.value()
43         self.time += 1
44         self.progressBar_Test.setValue(self.time)
45 
46         #ProgressBar의 값이 최댓값 이상이 되면 Timer를 중단시켜 ProgressBar의 값이 더이상 증가하지 않게 합니다.
47         if self.time >= self.progressBar_Test.maximum() :
48             self.timerVar.stop()
49 
50     def printValue(self) :
51         print(self.progressBar_Test.value())
52 
53 if __name__ == "__main__" :
54     app = QApplication(sys.argv)
55     myWindow = WindowClass()
56     myWindow.show()
57     app.exec_()

 

ListWidget

 

 1 #ListWidget
 2 """
 3 QListWidget의 항목이 클릭되었을 때 기능 실행
 4 self.ListWidget이름.itemClicked.connect(함수)
 5 
 6 QListWidget의 항목이 더블클릭되었을 때 기능 실행
 7 self.ListWidget이름.itemDoubleClicked.connect(함수)
 8 
 9 QListWidget에서 다른 항목이 선택되었을 때
10 self.ListWidget이름.currentItemChanged.connect(함수)
11 
12 QListWidget의 함수
13 QListWidgetItem객체.text()
14 
15 항목의 반환
16 .currentRow()->ListWidget에서 선택한 항목이 몇번째 항목인지를 반환합니다.
17 .currentItem()->ListWidget에서 선택한 항목을 반환합니다. 이때, 반환된 값은 QListWidgetItem의 객체입니다.
18 .item(row)->ListWidget에서 Row번째 항목을 반환합니다. 이때, 반환된 값은 QListWidgetItem의 객체입니다.
19 
20 항목의 추가, 삭제
21 .addItem(String)->ListWidget에 새로운 항목을 추가합니다. Parameter로 추가할 항목의 문자열을 입력합니다.
22 .insertItem(row, String)->ListWiget의 row번째에 새로운 항목을 추가합니다. Parameter로 추가할 위치와 추가할 항목의 문자열을 입력합니다.
23 .takeItem(row)->ListWidget의 row번째 항목을 삭제합니다. 삭제된 항목은 QListWidgetItem의 형태로 반환됩니다.
24 .clear()->ListWidget의 모든 항목을 삭제합니다.
25 """
26 import sys
27 from PyQt5.QtWidgets import *
28 from PyQt5.QtCore import *
29 from PyQt5.QtGui import *
30 from PyQt5 import uic
31 
32 form_class = uic.loadUiType("L016.ListWidget.ui")[0]
33 
34 class WindowClass(QMainWindow, form_class) :
35     def __init__(self) :
36         super().__init__()
37         self.setupUi(self)
38 
39         #ListWidget의 시그널
40         self.listWidget_Test.itemClicked.connect(self.chkItemClicked)
41         self.listWidget_Test.itemDoubleClicked.connect(self.chkItemDoubleClicked)
42         self.listWidget_Test.currentItemChanged.connect(self.chkCurrentItemChanged)
43 
44         #버튼에 기능 연결
45         self.btn_add.clicked.connect(self.addListWidget)
46         self.btn_insert.clicked.connect(self.insertListWidget)
47 
48         self.btn_print.clicked.connect(self.printCurrentItem)
49         self.btn_print_multi.clicked.connect(self.printMultiItems)
50         self.btn_remove.clicked.connect(self.removeCurrentItem)
51         self.btn_clear.clicked.connect(self.clearItem)
52 
53     #ListWidget의 시그널에 연결된 함수들
54     def chkItemClicked(self) :
55         print(self.listWidget_Test.currentItem().text())
56 
57     def chkItemDoubleClicked(self) :
58         print(str(self.listWidget_Test.currentRow()) + " : " + self.listWidget_Test.currentItem().text())
59 
60     def chkCurrentItemChanged(self) :
61         print("Current Row : " + str(self.listWidget_Test.currentRow()))
62 
63     #항목을 추가, 삽입하는 함수들
64     def addListWidget(self) :
65         self.addItemText = self.line_addItem.text()
66         self.listWidget_Test.addItem(self.addItemText)
67 
68     def insertListWidget(self) :
69         self.insertRow = self.spin_insertRow.value()
70         self.insertText = self.line_insertItem.text()
71         self.listWidget_Test.insertItem(self.insertRow, self.insertText)
72 
73     #Button Function
74     def printCurrentItem(self) :
75         print(self.listWidget_Test.currentItem().text())
76 
77     def printMultiItems(self) :
78         #여러개를 선택했을 때, selectedItems()를 이용하여 선택한 항목을 List의 형태로 반환받습니다.
79         #그 후, for문을 이용하여 선택된 항목을 출력합니다.
80         #출력할 때, List안에는 QListWidgetItem객체가 저장되어 있으므로, .text()함수를 이용하여 문자열로 변환해야 합니다.
81         self.selectedList = self.listWidget_Test.selectedItems()
82         for i in self.selectedList :
83             print(i.text())
84 
85     def removeCurrentItem(self) :
86         #ListWidget에서 현재 선택한 항목을 삭제할 때는 선택한 항목의 줄을 반환한 후, takeItem함수를 이용해 삭제합니다. 
87         self.removeItemRow = self.listWidget_Test.currentRow()
88         self.listWidget_Test.takeItem(self.removeItemRow)
89 
90     def clearItem(self) :
91         self.listWidget_Test.clear()
92 
93 
94 if __name__ == "__main__" :
95     app = QApplication(sys.argv)
96     myWindow = WindowClass()
97     myWindow.show()
98     app.exec_()

Table Widget

 

 1 #Table Widget
 2 """
 3 QTableView의 속성
 4 showGrid : 표의 선을 보여줄지를 결정합니다.
 5 gridStyle : showGrid를 체크했을 때, 표의 선을 어떤 모양으로 할지를 결정합니다. 기본값은 SolidLine(실선) 입니다.
 6 
 7 QTableWidget의 속성
 8 rowCount : QTableWidget의 행의 개수를 결정합니다. 기본값은 0입니다.
 9 columnCount : QTableWidget의 열의 개수를 결정합니다.
10 
11 QTableWidget의 시그널
12 TableWidget의 Cell의 내용이 바뀌었을 때 기능 실행
13 self.TableWidget이름.cellChanged.connect(함수)
14 
15 TableWidget에서 선택된 Cell이 바뀌었을 때 기능 실행
16 self.TableWidget이름.currentCellChanged.connect(함수)
17 
18 TableWidget에서 Cell이 클릭 되었을 때 기능 실행
19 self.TableWidget이름.cellClicked.connect(함수)
20 
21 TableWidget에서 Cell이 더블클릭 되었을 때 기능 실행
22 self.TableWidget이름.cellDoubleClicked.connect(함수)
23 
24 QTableWidget의 함수
25 #QTableWidgetItem객체의 생성
26 qTableWidgetItemVar = QTableWidgetItem("항목이 가질 문자열 입력")
27 
28 #QTableWidgetItem객체의 문자열 반환
29 qTableWidgetItemVar.text()
30 
31 #QTableWidgetItem객체의 문자열 수정
32 qTableWidgetItemVar.setText("새로운 문자열")
33 
34 현재상태의 반환
35 .item(row, col)->row번째 줄, col번째 열의 항목을 반환합니다. 이때, 반환된 항목은 QTableWidgetItem의 형식으로 반환됩니다.
36 .currentItem()->현재 선택하고 있는 항목을 반환합니다. 이때, 반환된 항목은 QTableWidgetItem의 형식으로 반환됩니다.
37 .currentRow()->현재 선택하고 있는 항목의 행을 반환합니다.
38 .currentColumn()->현재 선택하고 있는 항목의 열을 반환합니다.
39 .selectedItems()->선택한 항목들을 리스트 형식으로 반환합니다. 리스트 안에는 선택된 항목들이 QTableWidgetItem의 형식으로 포함되어 있습니다.
40 .selectedRanges()->현재 선택한 범위를 QTableWidgetSelectionRange의 형식으로 반환합니다.
41 
42 항목의 추가, 삭제와 관련된 함수
43 .setItem(row,col,item)->row번째 줄, col번째 칸에 Item이라는 항목을 추가합니다. 이때, Item은 QTableWidgetItem 형식의 객체여야 합니다.
44 .takeItem(row,col)->row번째 줄, col번째 칸에 있는 항목을 삭제합니다. 이때, 삭제된 항목은 QTableWidgetItem형식의 객체로 반환됩니다.
45 .clear()->행과 열의 Header를 포함한 모든 항목을 삭제합니다.
46 .clearContents()->행과 열의 Header를 제외한 모든 항목을 삭제합니다.
47 
48 Table의 행과 열에 관련된 함수
49 .currentColumnCount()->현재 Table Widget에 존재하는 열의 개수를 반환합니다.
50 .currentRowCount()->현재 Table Widget에 존재하는 행의 개수를 반환합니다.
51 .setColumnCount(col)->현재 Table Widget의 열의 개수를 col개로 설정합니다.
52 .setRowCount(row)->현재 Table Widget의 행의 개수를 row개로 설정합니다.
53 
54 .horizontalHeaderItem(col)->col번째 열의 Header를 QTableWidgetItem 형식의 객체로 반환합니다.
55 .takeHorizontalHeader(col)->col번째 열의 Header를 삭제합니다. 이때 삭제된 항목은 QTableWidgetItem형식의 객체로 반환됩니다.
56 .setHorizontalHeaderItem(col, item)->col번째 열의 Header를 Item이 가지고 있는 글자로 바꿉니다. 이때, Item은 QTableWidgetItem 형식의 객체여야 합니다.
57 .setHorizontalHeaderLabels(List)->열들의 Header를 일괄적으로 변경합니다. Parameter로 새로운 Header가 될 문자열이 들어있는 List가 필요하며, List의 0번째 항목이 0번째 열의 Header가 됩니다.
58 
59 .verticalHeaderItem(row)->row번째 줄의 Header를 QTableWidgetItem 형식의 객체로 반환합니다.
60 .takeVerticalHeader(row)->row번째 줄의 Header를 삭제합니다. 이때 삭제된 항목은 QTableWidgetItem형식의 객체로 반환됩니다.
61 .setVerticalHeaderItem(row, item)->row번째 줄의 Header를 Item이 가지고 있는 글자로 바꿉니다. 이때, Item은 QTableWidgetItem 형식의 객체여야 합니다.
62 .setVerticalHeaderLabels(List)->행들의 Header를 일괄적으로 변경합니다. Parameter로 새로운 Header가 될 문자열이 들어있는 List가 필요하며, List의 0번째 항목이 0번째 행의 Header가 됩니다.
63 """
64 
65 #https://doc.qt.io/qtforpython/PySide2/QtWidgets/QTableWidget.html?highlight=qtablewidget    
66 import sys
67 from PyQt5.QtWidgets import *
68 from PyQt5.QtCore import *
69 from PyQt5.QtGui import *
70 from PyQt5 import uic
71 
72 form_class = uic.loadUiType("L017.TableView.ui")[0]
73 
74 class WindowClass(QMainWindow, form_class) :
75     def __init__(self) :
76         super().__init__()
77         self.setupUi(self)
78         self.tableWidget_Test.cellChanged.connect(self.cellChangeFunc)
79 
80     def cellChangeFunc(self) :
81         print("cellChanged")
82 
83         
84 if __name__ == "__main__" :
85     app = QApplication(sys.argv)
86     myWindow = WindowClass()
87     myWindow.show()
88     app.exec_()

 

 

 

 





















 

posted @ 2019-08-14 14:37  kingboy100  阅读(368)  评论(0编辑  收藏  举报