Browse Source

layout, table위젯 add

tobby48 6 years ago
parent
commit
6245c09cb0

+ 39
- 0
src/kr/co/swh/lecture/python/pyqt5/gridlayout.py View File

@@ -0,0 +1,39 @@
1
+import sys
2
+from PyQt5.QtWidgets import *
3
+from PyQt5.QtCore import *
4
+
5
+class MyWindow(QWidget):
6
+    def __init__(self):
7
+        super().__init__()
8
+        self.initUI()
9
+
10
+    def initUI(self):
11
+        self.setWindowTitle('SWH Academy Window.')
12
+        
13
+        centerGeometry = QDesktopWidget().availableGeometry().center()
14
+        self.resize(300, 100)
15
+        frameGeometry = self.frameGeometry()
16
+        frameGeometry.moveCenter(centerGeometry)
17
+
18
+        idLabel = QLabel("아이디 : ")
19
+        pwLabel = QLabel("비밀번호 : ")
20
+        idLineEdit = QLineEdit()
21
+        pwLineEdit = QLineEdit()
22
+        loginButton= QPushButton("로그인")
23
+
24
+        layout = QGridLayout()
25
+
26
+        layout.addWidget(idLabel, 0, 0)
27
+        layout.addWidget(idLineEdit, 0, 1)
28
+
29
+        layout.addWidget(pwLabel, 1, 0)
30
+        layout.addWidget(pwLineEdit, 1, 1)
31
+        layout.addWidget(loginButton, 1, 2)
32
+
33
+        self.setLayout(layout)
34
+        
35
+if __name__ == "__main__":
36
+    app = QApplication(sys.argv)
37
+    window = MyWindow()
38
+    window.show()
39
+    sys.exit(app.exec_())

+ 56
- 0
src/kr/co/swh/lecture/python/pyqt5/hboxlayout.py View File

@@ -0,0 +1,56 @@
1
+import sys
2
+from PyQt5.QtWidgets import *
3
+from PyQt5.QtCore import *
4
+
5
+class MyWindow(QWidget):
6
+    def __init__(self):
7
+        super().__init__()
8
+        self.initUI()
9
+
10
+    def initUI(self):
11
+        self.setWindowTitle('SWH Academy Window.')
12
+        self.setGeometry(200, 200, 360, 100)
13
+
14
+        self.label = QLabel("", self)
15
+        self.textEdit = QTextEdit()
16
+        
17
+        self.lineEdit = QLineEdit("", self)
18
+        self.lineEdit.textChanged.connect(self.lineEditChanged)
19
+
20
+        button2 = QPushButton("지우기", self)
21
+        button2.clicked.connect(self.button2Clicked)
22
+        
23
+        button3 = QPushButton("종료", self)
24
+        button3.clicked.connect(QCoreApplication.instance().quit)
25
+
26
+        bottomLayout = QHBoxLayout()
27
+        bottomLayout.addStretch(5)
28
+        bottomLayout.addWidget(self.lineEdit)
29
+        bottomLayout.addWidget(button2)
30
+        bottomLayout.addWidget(button3)
31
+        bottomLayout.addStretch(1)
32
+        
33
+        topLayout = QVBoxLayout()
34
+        topLayout.addWidget(self.label)
35
+        topLayout.addWidget(self.textEdit)
36
+        
37
+        layout = QVBoxLayout()
38
+        layout.addLayout(topLayout)
39
+        layout.addLayout(bottomLayout)
40
+
41
+        self.setLayout(layout)
42
+        
43
+    def lineEditChanged(self):
44
+        self.label.setText(self.lineEdit.text())
45
+        self.textEdit.setText(self.lineEdit.text())
46
+
47
+    def button2Clicked(self):
48
+        self.label.clear()
49
+        self.lineEdit.clear()
50
+        self.textEdit.clear()
51
+        
52
+if __name__ == "__main__":
53
+    app = QApplication(sys.argv)
54
+    window = MyWindow()
55
+    window.show()
56
+    sys.exit(app.exec_())

+ 49
- 0
src/kr/co/swh/lecture/python/pyqt5/table.py View File

@@ -0,0 +1,49 @@
1
+import sys
2
+from PyQt5.QtWidgets import *
3
+from PyQt5.QtCore import *
4
+
5
+class MyWindow(QMainWindow):
6
+    def __init__(self):
7
+        super().__init__()
8
+        self.initUI()
9
+
10
+    def initUI(self):
11
+        self.setWindowTitle('SWH Academy Window.')
12
+        
13
+        self.rows = [
14
+            ['1', '코야', '2011.06'],
15
+            ['2', '레종', '2013.02'],
16
+            ['3', '유키', '2015.10']
17
+        ]
18
+        headers = ['No.', '이름', '출생일']
19
+
20
+        centerGeometry = QDesktopWidget().availableGeometry().center()
21
+        self.resize(300, 200)
22
+        frameGeometry = self.frameGeometry()
23
+        frameGeometry.moveCenter(centerGeometry)
24
+
25
+        self.tableWidget = QTableWidget(self)
26
+        self.tableWidget.resize(300, 200)
27
+        self.tableWidget.setRowCount(len(self.rows))
28
+        self.tableWidget.setColumnCount(len(headers))
29
+        self.tableWidget.setEditTriggers(QAbstractItemView.NoEditTriggers)
30
+        
31
+        self.tableWidget.setHorizontalHeaderLabels(headers)
32
+        self.setTableWidgetData()
33
+
34
+    def setTableWidgetData(self):
35
+        for b in range(len(self.rows)):
36
+            for c in range(len(self.rows[b])):
37
+                item = QTableWidgetItem(self.rows[b][c])
38
+                if c == 0:
39
+                    item.setTextAlignment(Qt.AlignRight)
40
+                self.tableWidget.setItem(b, c, item)
41
+                
42
+        self.tableWidget.resizeColumnsToContents()
43
+        self.tableWidget.resizeRowsToContents()
44
+
45
+if __name__ == "__main__":
46
+    app = QApplication(sys.argv)
47
+    window = MyWindow()
48
+    window.show()
49
+    sys.exit(app.exec_())

+ 56
- 0
src/kr/co/swh/lecture/python/pyqt5/vboxlayout.py View File

@@ -0,0 +1,56 @@
1
+import sys
2
+from PyQt5.QtWidgets import *
3
+from PyQt5.QtCore import *
4
+
5
+class MyWindow(QWidget):
6
+    def __init__(self):
7
+        super().__init__()
8
+        self.initUI()
9
+
10
+    def initUI(self):
11
+        self.setWindowTitle('SWH Academy Window.')
12
+        
13
+        self.rows = [
14
+            ['1', '코야', '2011.06'],
15
+            ['2', '레종', '2013.02'],
16
+            ['3', '유키', '2015.10']
17
+        ]
18
+        headers = ['No.', '이름', '출생일']
19
+
20
+        centerGeometry = QDesktopWidget().availableGeometry().center()
21
+        self.resize(300, 200)
22
+        frameGeometry = self.frameGeometry()
23
+        frameGeometry.moveCenter(centerGeometry)
24
+
25
+        self.tableWidget = QTableWidget(self)
26
+        self.tableWidget.setRowCount(len(self.rows))
27
+        self.tableWidget.setColumnCount(len(headers))
28
+        self.tableWidget.setEditTriggers(QAbstractItemView.NoEditTriggers)
29
+        
30
+        self.tableWidget.setHorizontalHeaderLabels(headers)
31
+        self.setTableWidgetData()
32
+        
33
+        label = QLabel("우리집 고양이", self)
34
+        
35
+        layout = QVBoxLayout()
36
+        layout.addWidget(label)
37
+        layout.addWidget(self.tableWidget)
38
+
39
+        self.setLayout(layout)
40
+
41
+    def setTableWidgetData(self):
42
+        for b in range(len(self.rows)):
43
+            for c in range(len(self.rows[b])):
44
+                item = QTableWidgetItem(self.rows[b][c])
45
+                if c == 0:
46
+                    item.setTextAlignment(Qt.AlignRight)
47
+                self.tableWidget.setItem(b, c, item)
48
+                
49
+        self.tableWidget.resizeColumnsToContents()
50
+        self.tableWidget.resizeRowsToContents()
51
+
52
+if __name__ == "__main__":
53
+    app = QApplication(sys.argv)
54
+    window = MyWindow()
55
+    window.show()
56
+    sys.exit(app.exec_())