# list.py ¿Í ui¿Í view.py ¿¡ °üÇÑ Áú¹®ÀÔ´Ï´Ù. PyQt5·Î ÀÛ¾÷ÇÏ¿´°í, pymysql À» »ç¿ëÇÏ¿´½À´Ï´Ù. ´äº¯ ºÎŹµå¸³´Ï´Ù ¤Ð
==list.py==
# coding: utf-8
import sys
import os
from PyQt5 import QtWidgets
from PyQt5 import QtGui
from PyQt5 import uic
from PyQt5 import QtCore
from PyQt5.QtCore import pyqtSlot
import pymysql
# MySQL Connection ¿¬°á
conn = pymysql.connect(host='localhost', user='test', password='',
db='test', charset='utf8')
# Connection À¸·ÎºÎÅÍ Cursor »ý¼º
curs = conn.cursor()
# SQL¹® ½ÇÇà
sql = "select * from customer"
curs.execute(sql)
# µ¥ÀÌŸ Fetch
rows = curs.fetchall()
# Connection ´Ý±â
conn.close()
class Form(QtWidgets.QDialog):
def __init__(self, parent=None):
QtWidgets.QDialog.__init__(self, parent)
self.ui = uic.loadUi("list.ui", self)
self.ui.show()
self.ui.label_2.setText(rows[0][1]) # ±èÁ¤¼ö
self.ui.label_3.setText(rows[1][1]) # °¼öÁ¤
self.ui.label_4.setText(rows[2][1]) # À̼ºÁø
self.ui.label_5.setText(rows[3][1]) # È«´ë±â
@pyqtSlot()
def write(self):
os.system('write.py');
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
w = Form()
sys.exit(app.exec())
# Áú¹® 1
# ¿©±â¼ self.ui.label_2.setText(rows[0][1]) ºÎºÐÀ» for ¹®À¸·Î 10°³¸¦ Ãâ·ÂÇÏ·Á°í ÇÕ´Ï´Ù. ±×·±µ¥ ±× ¹æ¹ýÀ» ¸ð¸£°Ú½À´Ï´Ù.. ±×·¡¼ Áö±ÝÀº ÀÏÀÏÀÌ Àú·¸°Ô Ãâ·ÂÇسõ±â¸¸ Çß½À´Ï´Ù.. ¾î¶»°Ô Çϸé 10°³¸¦ Àú·¸°Ô ¾È Âï°í for ¹®À¸·Î µ¹¸± ¼ö ÀÖÀ»±î¿ä?
# ¿øÇÏ´Â ±â´ÉÀº page= 1 À̸é, 0, 10 ±îÁö Ãâ·ÂÇÏ°í, page=2 À̸é 10,20 .. ÀÌ·±½ÄÀ¸·Î Ãâ·ÂÇÏ±æ ¿øÇÕ´Ï´Ù.
# Áú¹® 2
# ±×¸®°í ¶Ç ÇÏ°íÀÚ ÇÏ´Â °ÍÀº self.ui.label_2.setText(rows[0][1]) À» Ŭ¸¯ÇßÀ»¶§ view.py ¸¦ È£ÃâÇÏ¸é¼ º¯¼ö¸¦ ³Ñ±â°í ½Í½À´Ï´Ù. ÇѸ¶µð·Î ºäÆäÀÌÁö·Î ¸µÅ©µÇ°Ô ÇÏ´Â ±â´ÉÀ» ¿øÇϴµ¥ ÆÄÀ̽ãÀ̶ó ÀÌ ±â´ÉÀ» ã°í´Â Àִµ¥ ¾î¶»°Ô ÀÌ°ÍÀ» Àû¿ëÇÒ ¼ö ÀÖÀ»±î¿ä?
# Áú¹® 3
# ¿©±â±îÁö list.py ¿¡ ´ëÇÑ ¹°À½ÀÔ´Ï´Ù. (±×¸®°í Qt Designer ·Î ¸¸µé¾ú±â ¶§¹®¿¡, list.ui ¸¦ ui·Î ºÒ·¯¿À´Â ¹æ½ÄÀ» ÃëÇߴµ¥, ¸¸¾à ui¸¦ py È ½ÃÄѼ ÀÛ¾÷ÇؾßÇÑ´Ù¸é, °Å±â¼µµ ¸·È÷´Â°Ô ÀÖ¾ú½À´Ï´Ù. ±×°ÍÀº write ÇÔ¼öÀÇ Á¤ÀÇ¿¡ ´ëÇÑ ºÎºÐÀ¸·Î ¿¡·¯°¡ ¸ÕÀú Ãâ·ÂÀÌ µÇ¾î¼ °Å±â¼ºÎÅÍ °è¼Ó Çì¸Å°í ÀÖ½À´Ï´Ù. µµ¿ÍÁÖ¼¼¿ä...
# cmd ¿¡¼ AttributeError: 'QDialog' object has no attribute ¶ó°í ¶ß¸é¼ ¿¡·¯°¡ ³³´Ï´Ù..
# list.ui¸¦ py È ½ÃÄ×À» ¶§´Â ¾Æ·¡ ÄÚµå¿Í °°½À´Ï´Ù.
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'C:\Users\Fortis-Aaron\AppData\Local\Programs\Python\Python36-32\scripts\list.ui'
#
# Created by: PyQt5 UI code generator 5.9.2
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(400, 300)
self.label = QtWidgets.QLabel(Dialog)
self.label.setGeometry(QtCore.QRect(60, 30, 281, 31))
self.label.setAlignment(QtCore.Qt.AlignCenter)
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(Dialog)
self.label_2.setGeometry(QtCore.QRect(40, 60, 321, 21))
self.label_2.setAlignment(QtCore.Qt.AlignCenter)
self.label_2.setObjectName("label_2")
self.label_3 = QtWidgets.QLabel(Dialog)
self.label_3.setGeometry(QtCore.QRect(40, 80, 321, 21))
self.label_3.setAlignment(QtCore.Qt.AlignCenter)
self.label_3.setObjectName("label_3")
self.label_4 = QtWidgets.QLabel(Dialog)
self.label_4.setGeometry(QtCore.QRect(40, 100, 321, 21))
self.label_4.setAlignment(QtCore.Qt.AlignCenter)
self.label_4.setObjectName("label_4")
self.label_5 = QtWidgets.QLabel(Dialog)
self.label_5.setGeometry(QtCore.QRect(40, 120, 321, 21))
self.label_5.setAlignment(QtCore.Qt.AlignCenter)
self.label_5.setObjectName("label_5")
self.pushButton = QtWidgets.QPushButton(Dialog)
self.pushButton.setGeometry(QtCore.QRect(310, 260, 75, 23))
self.pushButton.setObjectName("pushButton")
self.retranslateUi(Dialog)
self.pushButton.clicked.connect(Dialog.write) # ÀÌ ºÎºÐÀ» ÁÖ¼®Çϸé ÀߵDZä ÇÏÁö¸¸ write ±Û¾²±â ÇÔ¼ö¸¦ ½ÇÇàÇÒ ¼ö ¾ø½À´Ï´Ù..
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
self.label.setText(_translate("Dialog", "Á¦¸ñ"))
self.label_2.setText(_translate("Dialog", "Á¦¸ñ~"))
self.label_3.setText(_translate("Dialog", "Á¦¸ñ~"))
self.label_4.setText(_translate("Dialog", "Á¦¸ñ~"))
self.label_5.setText(_translate("Dialog", "Á¦¸ñ~"))
self.pushButton.setText(_translate("Dialog", "±Û¾²±â"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Dialog = QtWidgets.QDialog()
ui = Ui_Dialog()
ui.setupUi(Dialog)
Dialog.show()
sys.exit(app.exec_())
###################################
# ui¸¦ pyÈ ½ÃŲ ÀÌ°ÍÀ» ÅëÇؼ write ÇÔ¼ö¿¡ ´ëÇÑ ¿¡·¯ ºÎºÐÀÌ ÇØ°áµÇ°í, for ¹®À» µ¹·Á¼ self.label_2.setText(_translate("Dialog", "Á¦¸ñ~")) ¸¦ ÆäÀÌÁö¿¡ µû¶ó 10°³¸¦ Ãâ·ÂÇÒ ¼ö ÀÖ´Ù¸é ÁÁ°Ú½À´Ï´Ù...¤Ì
###################################
# Áú¹® 4
# ¸¶Áö¸·À¸·Î list.py ¿¡¼ '±Û¾²±â' ¹öÆ°À» ´©¸£¸é write ÇÔ¼ö°¡ ½ÇÇàµÇ¾î¼ write.py °¡ È£ÃâµÇ¾úÀ¸¸é ÁÁ°Ú½À´Ï´Ù. ÀÌ ¶§, Àú´Â ¿·Á ÀÖ´Â list.py ¸¦ ´Ý°í ½Í½À´Ï´Ù. ±×·±µ¥ ´ÝÇôÁöÁö ¾Ê´Âµ¥ sys.exit() ¸¦ ½áºÁµµ ºÎ¸ðâÀ» ´Ý´Â ±â´ÉÀ» ãÁö ¸øÇߴµ¥¿ä.. ÀÌ·± °æ¿ì ¾î¶»°Ô ÇØ°áÇÒ ¼ö ÀÖÀ»±î¿ä¤Ð?...? ºÎŹµå¸³´Ï´Ù...¤Ð¤Ð
# ÃÖÁ¾ÀûÀ¸·Î ¿øÇÏ´Â °ÍÀº ÆÄÀ̽ã, PyQt5 ¸¦ ÅëÇؼ °Ô½ÃÆÇ À©µµ¿ì ÇÁ·Î±×·¥ ¿Ï¼ºÀÔ´Ï´Ù. À¥À» ÅëÇؼ °Ô½ÃÆÇÀ» ¸¸µå´Â °ÍÀº ±×·¸°Ô ¾î·ÆÁö ¾Ê¾Ò´Âµ¥ ÆÄÀ̽ãÀ» ÅëÇؼ, GUI ÇÁ·Î±×·¥ ÅëÇؼ À©µµ¿ì ÇÁ·Î±×·¥À¸·Î ¸¸µå·Á´Ï ÀÌ°ÍÀú°Í Áú¹®À» ¸¹ÀÌ ÇÏ°Ô µÇ´Âµ¥¿ä.. ´äº¯ ºÎŹµå¸³´Ï´Ù....¤Ð¤Ð
# list.py(¸ñ·ÏÆäÀÌÁö), write.py(±Û¾²±â ÆäÀÌÁö), view.py(ºä ÆäÀÌÁö)
|