QtDesigner changes will be lost after redesign User InterfacePop up Window or Multiple Windows with PyQt5/QtDesignerUsing qtDesigner with python seamlesslyLayout Problems with Qt Designer and PyCharm (high-dpi laptop)PyQt5 Custom widget does not appear in GridLayoutPyQt5 - super-class __init__() of Type Main was never calledPython class (object) has no attributeHow to access pyqt .ui files from python without using pyuicPyQT push button clicked connect does not close the applicationpyqt5 - adding layout to the central widget makes everything stackedCannot access function from another window in PyQt5How do I return multiple values from a function?What are some common uses for Python decorators?Peak detection in a 2D arrayHow can I open multiple files using “with open” in Python?MVC design with Qt Designer and PyQt / PySidePython QtDesigner and Update of Form after GPIO Event on Rasberry PiError: “ 'dict' object has no attribute 'iteritems' ”How to connect separate UI files created by Qt Designer?QtDesigner preview different from the actual GUIHow to edit QtDesigner widget class?

Is it legal to use cash pulled from a credit card to pay the monthly payment on that credit card?

How do we explain the E major chord in this progression?

Convert every file from JPEG to GIF in terminal

How can I create a pattern of parallel lines that are increasing in distance in Photoshop / Illustrator?

What is AM-CM inequality?

Why isn't there a ";" after "do" in sh loops?

Word for showing a small part of something briefly to hint to its existence or beauty without fully uncovering it

Trapped in an ocean Temple in Minecraft?

What is the difference between 1/3, 1/2, and full casters?

Character is called by their first initial. How do I write it?

Trying to build a function to compute divided difference for arbitrary list of points

kids pooling money for Lego League and taxes

Are there any examples of technologies have been lost over time?

How acidic does a mixture have to be for milk to curdle?

How can I stop myself from micromanaging other PCs' actions?

Why was Sauron preparing for war instead of trying to find the ring?

TSA asking to see cell phone

What is the lowest-speed bogey a jet fighter can intercept/escort?

Why is drive/partition number still used?

Can two figures have the same area, perimeter, and same number of segments have different shape?

What's the difference between 2a and 10a charging options?

A planet illuminated by a black hole?

What does "see" in "the Holy See" mean?

Request for a Latin phrase as motto "God is highest/supreme"



QtDesigner changes will be lost after redesign User Interface


Pop up Window or Multiple Windows with PyQt5/QtDesignerUsing qtDesigner with python seamlesslyLayout Problems with Qt Designer and PyCharm (high-dpi laptop)PyQt5 Custom widget does not appear in GridLayoutPyQt5 - super-class __init__() of Type Main was never calledPython class (object) has no attributeHow to access pyqt .ui files from python without using pyuicPyQT push button clicked connect does not close the applicationpyqt5 - adding layout to the central widget makes everything stackedCannot access function from another window in PyQt5How do I return multiple values from a function?What are some common uses for Python decorators?Peak detection in a 2D arrayHow can I open multiple files using “with open” in Python?MVC design with Qt Designer and PyQt / PySidePython QtDesigner and Update of Form after GPIO Event on Rasberry PiError: “ 'dict' object has no attribute 'iteritems' ”How to connect separate UI files created by Qt Designer?QtDesigner preview different from the actual GUIHow to edit QtDesigner widget class?






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








3















I'm using QtDesinger for design GUI to use in python, after designing my desired UI in QtDesigner, convert it to python code and then I changed generated code to do some action in my python code, but if I changed the UI with QtDesigner and convert it to python code again, I lost my previous changes on my code.



how can I solve the problem?



can we Spreading a Class Over Multiple Files in python to write code in other files?










share|improve this question
























  • Please see Using Qt Designer in the PyQt5 docs for examples showing how to use the code generated by pyuic.

    – ekhumoro
    Oct 3 '17 at 13:52

















3















I'm using QtDesinger for design GUI to use in python, after designing my desired UI in QtDesigner, convert it to python code and then I changed generated code to do some action in my python code, but if I changed the UI with QtDesigner and convert it to python code again, I lost my previous changes on my code.



how can I solve the problem?



can we Spreading a Class Over Multiple Files in python to write code in other files?










share|improve this question
























  • Please see Using Qt Designer in the PyQt5 docs for examples showing how to use the code generated by pyuic.

    – ekhumoro
    Oct 3 '17 at 13:52













3












3








3


1






I'm using QtDesinger for design GUI to use in python, after designing my desired UI in QtDesigner, convert it to python code and then I changed generated code to do some action in my python code, but if I changed the UI with QtDesigner and convert it to python code again, I lost my previous changes on my code.



how can I solve the problem?



can we Spreading a Class Over Multiple Files in python to write code in other files?










share|improve this question
















I'm using QtDesinger for design GUI to use in python, after designing my desired UI in QtDesigner, convert it to python code and then I changed generated code to do some action in my python code, but if I changed the UI with QtDesigner and convert it to python code again, I lost my previous changes on my code.



how can I solve the problem?



can we Spreading a Class Over Multiple Files in python to write code in other files?







python pyqt pyqt5 qt-designer






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Sep 28 '18 at 16:05









eyllanesc

103k12 gold badges38 silver badges70 bronze badges




103k12 gold badges38 silver badges70 bronze badges










asked Oct 3 '17 at 12:37









Ahad aghapourAhad aghapour

1,5571 gold badge15 silver badges28 bronze badges




1,5571 gold badge15 silver badges28 bronze badges












  • Please see Using Qt Designer in the PyQt5 docs for examples showing how to use the code generated by pyuic.

    – ekhumoro
    Oct 3 '17 at 13:52

















  • Please see Using Qt Designer in the PyQt5 docs for examples showing how to use the code generated by pyuic.

    – ekhumoro
    Oct 3 '17 at 13:52
















Please see Using Qt Designer in the PyQt5 docs for examples showing how to use the code generated by pyuic.

– ekhumoro
Oct 3 '17 at 13:52





Please see Using Qt Designer in the PyQt5 docs for examples showing how to use the code generated by pyuic.

– ekhumoro
Oct 3 '17 at 13:52












2 Answers
2






active

oldest

votes


















6














To avoid having these problems it is advisable not to modify this file but to create a new file where we implement a class that uses that design.



For example, suppose you have used the MainWindow template in the design.ui file, then convert it to Ui_Design.py like to the following structure:



from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):
def setupUi(self, MainWindow):
[...]

def retranslateUi(self, MainWindow):
[...]


Then we will create a new file that we will call logic.py where we will create the file that handles the logic and that uses the previous design:



class Logic(QMainWindow, Ui_MainWindow):
def __init__(self, *args, **kwargs):
QMainWindow.__init__(self, *args, **kwargs)
self.setupUi(self)


So even if you modify the design and generate the file again .py you will not have to modify the file of the logic.



To generalize the idea we must have the following rules but for this the logic class must have the following structure:



class Logic(PyQtClass, DesignClass):
def __init__(self, *args, **kwargs):
PyQtClass.__init__(self, *args, **kwargs)
self.setupUi(self)


  • PyQtClass: This class depends on the design chosen.



Template PyQtClass
─────────────────────────────────────────────
Main Window QMainWindow
Widget QWidget
Dialog with Buttons Bottom QDialog
Dialog with Buttons Right QDialog
Dialog with Without Buttons QDialog



  • DesignClass: The name of the class that appears in your design.


The advantage of this implementation is that you can implement all the logic since it is a widget, for example we will implement the solution closing pyqt messageBox with closeevent of the parent window :



class Logic(QMainWindow, Ui_MainWindow):
def __init__(self, *args, **kwargs):
QMainWindow.__init__(self, *args, **kwargs)
self.setupUi(self)
def closeEvent(self, event):
answer = QtWidgets.QMessageBox.question(
self,
'Are you sure you want to quit ?',
'Task is in progress !',
QtWidgets.QMessageBox.Yes,
QtWidgets.QMessageBox.No)
if answer == QtWidgets.QMessageBox.Yes:
event.accept()
else:
event.ignore()





share|improve this answer
































    0














    The easiest way is to use the *.ui file directly in the python code, you don't need convert to *.py file every time you change the ui.
    you can use this pseudo code in your project.



    # imports
    from PyQt5 import uic

    # load ui file
    baseUIClass, baseUIWidget = uic.loadUiType("MainGui.ui")

    # use loaded ui file in the logic class
    class Logic(baseUIWidget, baseUIClass):
    def __init__(self, parent=None):
    super(Logic, self).__init__(parent)
    self.setupUi(self)
    .
    .
    .
    .

    def main():
    app = QtWidgets.QApplication(sys.argv)
    ui = Logic(None)
    ui.showMaximized()
    sys.exit(app.exec_())





    share|improve this answer



























      Your Answer






      StackExchange.ifUsing("editor", function ()
      StackExchange.using("externalEditor", function ()
      StackExchange.using("snippets", function ()
      StackExchange.snippets.init();
      );
      );
      , "code-snippets");

      StackExchange.ready(function()
      var channelOptions =
      tags: "".split(" "),
      id: "1"
      ;
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function()
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled)
      StackExchange.using("snippets", function()
      createEditor();
      );

      else
      createEditor();

      );

      function createEditor()
      StackExchange.prepareEditor(
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: true,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: 10,
      bindNavPrevention: true,
      postfix: "",
      imageUploader:
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      ,
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      );



      );













      draft saved

      draft discarded


















      StackExchange.ready(
      function ()
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f46544780%2fqtdesigner-changes-will-be-lost-after-redesign-user-interface%23new-answer', 'question_page');

      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      6














      To avoid having these problems it is advisable not to modify this file but to create a new file where we implement a class that uses that design.



      For example, suppose you have used the MainWindow template in the design.ui file, then convert it to Ui_Design.py like to the following structure:



      from PyQt5 import QtCore, QtGui, QtWidgets

      class Ui_MainWindow(object):
      def setupUi(self, MainWindow):
      [...]

      def retranslateUi(self, MainWindow):
      [...]


      Then we will create a new file that we will call logic.py where we will create the file that handles the logic and that uses the previous design:



      class Logic(QMainWindow, Ui_MainWindow):
      def __init__(self, *args, **kwargs):
      QMainWindow.__init__(self, *args, **kwargs)
      self.setupUi(self)


      So even if you modify the design and generate the file again .py you will not have to modify the file of the logic.



      To generalize the idea we must have the following rules but for this the logic class must have the following structure:



      class Logic(PyQtClass, DesignClass):
      def __init__(self, *args, **kwargs):
      PyQtClass.__init__(self, *args, **kwargs)
      self.setupUi(self)


      • PyQtClass: This class depends on the design chosen.



      Template PyQtClass
      ─────────────────────────────────────────────
      Main Window QMainWindow
      Widget QWidget
      Dialog with Buttons Bottom QDialog
      Dialog with Buttons Right QDialog
      Dialog with Without Buttons QDialog



      • DesignClass: The name of the class that appears in your design.


      The advantage of this implementation is that you can implement all the logic since it is a widget, for example we will implement the solution closing pyqt messageBox with closeevent of the parent window :



      class Logic(QMainWindow, Ui_MainWindow):
      def __init__(self, *args, **kwargs):
      QMainWindow.__init__(self, *args, **kwargs)
      self.setupUi(self)
      def closeEvent(self, event):
      answer = QtWidgets.QMessageBox.question(
      self,
      'Are you sure you want to quit ?',
      'Task is in progress !',
      QtWidgets.QMessageBox.Yes,
      QtWidgets.QMessageBox.No)
      if answer == QtWidgets.QMessageBox.Yes:
      event.accept()
      else:
      event.ignore()





      share|improve this answer





























        6














        To avoid having these problems it is advisable not to modify this file but to create a new file where we implement a class that uses that design.



        For example, suppose you have used the MainWindow template in the design.ui file, then convert it to Ui_Design.py like to the following structure:



        from PyQt5 import QtCore, QtGui, QtWidgets

        class Ui_MainWindow(object):
        def setupUi(self, MainWindow):
        [...]

        def retranslateUi(self, MainWindow):
        [...]


        Then we will create a new file that we will call logic.py where we will create the file that handles the logic and that uses the previous design:



        class Logic(QMainWindow, Ui_MainWindow):
        def __init__(self, *args, **kwargs):
        QMainWindow.__init__(self, *args, **kwargs)
        self.setupUi(self)


        So even if you modify the design and generate the file again .py you will not have to modify the file of the logic.



        To generalize the idea we must have the following rules but for this the logic class must have the following structure:



        class Logic(PyQtClass, DesignClass):
        def __init__(self, *args, **kwargs):
        PyQtClass.__init__(self, *args, **kwargs)
        self.setupUi(self)


        • PyQtClass: This class depends on the design chosen.



        Template PyQtClass
        ─────────────────────────────────────────────
        Main Window QMainWindow
        Widget QWidget
        Dialog with Buttons Bottom QDialog
        Dialog with Buttons Right QDialog
        Dialog with Without Buttons QDialog



        • DesignClass: The name of the class that appears in your design.


        The advantage of this implementation is that you can implement all the logic since it is a widget, for example we will implement the solution closing pyqt messageBox with closeevent of the parent window :



        class Logic(QMainWindow, Ui_MainWindow):
        def __init__(self, *args, **kwargs):
        QMainWindow.__init__(self, *args, **kwargs)
        self.setupUi(self)
        def closeEvent(self, event):
        answer = QtWidgets.QMessageBox.question(
        self,
        'Are you sure you want to quit ?',
        'Task is in progress !',
        QtWidgets.QMessageBox.Yes,
        QtWidgets.QMessageBox.No)
        if answer == QtWidgets.QMessageBox.Yes:
        event.accept()
        else:
        event.ignore()





        share|improve this answer



























          6












          6








          6







          To avoid having these problems it is advisable not to modify this file but to create a new file where we implement a class that uses that design.



          For example, suppose you have used the MainWindow template in the design.ui file, then convert it to Ui_Design.py like to the following structure:



          from PyQt5 import QtCore, QtGui, QtWidgets

          class Ui_MainWindow(object):
          def setupUi(self, MainWindow):
          [...]

          def retranslateUi(self, MainWindow):
          [...]


          Then we will create a new file that we will call logic.py where we will create the file that handles the logic and that uses the previous design:



          class Logic(QMainWindow, Ui_MainWindow):
          def __init__(self, *args, **kwargs):
          QMainWindow.__init__(self, *args, **kwargs)
          self.setupUi(self)


          So even if you modify the design and generate the file again .py you will not have to modify the file of the logic.



          To generalize the idea we must have the following rules but for this the logic class must have the following structure:



          class Logic(PyQtClass, DesignClass):
          def __init__(self, *args, **kwargs):
          PyQtClass.__init__(self, *args, **kwargs)
          self.setupUi(self)


          • PyQtClass: This class depends on the design chosen.



          Template PyQtClass
          ─────────────────────────────────────────────
          Main Window QMainWindow
          Widget QWidget
          Dialog with Buttons Bottom QDialog
          Dialog with Buttons Right QDialog
          Dialog with Without Buttons QDialog



          • DesignClass: The name of the class that appears in your design.


          The advantage of this implementation is that you can implement all the logic since it is a widget, for example we will implement the solution closing pyqt messageBox with closeevent of the parent window :



          class Logic(QMainWindow, Ui_MainWindow):
          def __init__(self, *args, **kwargs):
          QMainWindow.__init__(self, *args, **kwargs)
          self.setupUi(self)
          def closeEvent(self, event):
          answer = QtWidgets.QMessageBox.question(
          self,
          'Are you sure you want to quit ?',
          'Task is in progress !',
          QtWidgets.QMessageBox.Yes,
          QtWidgets.QMessageBox.No)
          if answer == QtWidgets.QMessageBox.Yes:
          event.accept()
          else:
          event.ignore()





          share|improve this answer















          To avoid having these problems it is advisable not to modify this file but to create a new file where we implement a class that uses that design.



          For example, suppose you have used the MainWindow template in the design.ui file, then convert it to Ui_Design.py like to the following structure:



          from PyQt5 import QtCore, QtGui, QtWidgets

          class Ui_MainWindow(object):
          def setupUi(self, MainWindow):
          [...]

          def retranslateUi(self, MainWindow):
          [...]


          Then we will create a new file that we will call logic.py where we will create the file that handles the logic and that uses the previous design:



          class Logic(QMainWindow, Ui_MainWindow):
          def __init__(self, *args, **kwargs):
          QMainWindow.__init__(self, *args, **kwargs)
          self.setupUi(self)


          So even if you modify the design and generate the file again .py you will not have to modify the file of the logic.



          To generalize the idea we must have the following rules but for this the logic class must have the following structure:



          class Logic(PyQtClass, DesignClass):
          def __init__(self, *args, **kwargs):
          PyQtClass.__init__(self, *args, **kwargs)
          self.setupUi(self)


          • PyQtClass: This class depends on the design chosen.



          Template PyQtClass
          ─────────────────────────────────────────────
          Main Window QMainWindow
          Widget QWidget
          Dialog with Buttons Bottom QDialog
          Dialog with Buttons Right QDialog
          Dialog with Without Buttons QDialog



          • DesignClass: The name of the class that appears in your design.


          The advantage of this implementation is that you can implement all the logic since it is a widget, for example we will implement the solution closing pyqt messageBox with closeevent of the parent window :



          class Logic(QMainWindow, Ui_MainWindow):
          def __init__(self, *args, **kwargs):
          QMainWindow.__init__(self, *args, **kwargs)
          self.setupUi(self)
          def closeEvent(self, event):
          answer = QtWidgets.QMessageBox.question(
          self,
          'Are you sure you want to quit ?',
          'Task is in progress !',
          QtWidgets.QMessageBox.Yes,
          QtWidgets.QMessageBox.No)
          if answer == QtWidgets.QMessageBox.Yes:
          event.accept()
          else:
          event.ignore()






          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited May 15 '18 at 3:15

























          answered Oct 3 '17 at 12:54









          eyllanesceyllanesc

          103k12 gold badges38 silver badges70 bronze badges




          103k12 gold badges38 silver badges70 bronze badges























              0














              The easiest way is to use the *.ui file directly in the python code, you don't need convert to *.py file every time you change the ui.
              you can use this pseudo code in your project.



              # imports
              from PyQt5 import uic

              # load ui file
              baseUIClass, baseUIWidget = uic.loadUiType("MainGui.ui")

              # use loaded ui file in the logic class
              class Logic(baseUIWidget, baseUIClass):
              def __init__(self, parent=None):
              super(Logic, self).__init__(parent)
              self.setupUi(self)
              .
              .
              .
              .

              def main():
              app = QtWidgets.QApplication(sys.argv)
              ui = Logic(None)
              ui.showMaximized()
              sys.exit(app.exec_())





              share|improve this answer





























                0














                The easiest way is to use the *.ui file directly in the python code, you don't need convert to *.py file every time you change the ui.
                you can use this pseudo code in your project.



                # imports
                from PyQt5 import uic

                # load ui file
                baseUIClass, baseUIWidget = uic.loadUiType("MainGui.ui")

                # use loaded ui file in the logic class
                class Logic(baseUIWidget, baseUIClass):
                def __init__(self, parent=None):
                super(Logic, self).__init__(parent)
                self.setupUi(self)
                .
                .
                .
                .

                def main():
                app = QtWidgets.QApplication(sys.argv)
                ui = Logic(None)
                ui.showMaximized()
                sys.exit(app.exec_())





                share|improve this answer



























                  0












                  0








                  0







                  The easiest way is to use the *.ui file directly in the python code, you don't need convert to *.py file every time you change the ui.
                  you can use this pseudo code in your project.



                  # imports
                  from PyQt5 import uic

                  # load ui file
                  baseUIClass, baseUIWidget = uic.loadUiType("MainGui.ui")

                  # use loaded ui file in the logic class
                  class Logic(baseUIWidget, baseUIClass):
                  def __init__(self, parent=None):
                  super(Logic, self).__init__(parent)
                  self.setupUi(self)
                  .
                  .
                  .
                  .

                  def main():
                  app = QtWidgets.QApplication(sys.argv)
                  ui = Logic(None)
                  ui.showMaximized()
                  sys.exit(app.exec_())





                  share|improve this answer















                  The easiest way is to use the *.ui file directly in the python code, you don't need convert to *.py file every time you change the ui.
                  you can use this pseudo code in your project.



                  # imports
                  from PyQt5 import uic

                  # load ui file
                  baseUIClass, baseUIWidget = uic.loadUiType("MainGui.ui")

                  # use loaded ui file in the logic class
                  class Logic(baseUIWidget, baseUIClass):
                  def __init__(self, parent=None):
                  super(Logic, self).__init__(parent)
                  self.setupUi(self)
                  .
                  .
                  .
                  .

                  def main():
                  app = QtWidgets.QApplication(sys.argv)
                  ui = Logic(None)
                  ui.showMaximized()
                  sys.exit(app.exec_())






                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited May 15 '18 at 2:25









                  eyllanesc

                  103k12 gold badges38 silver badges70 bronze badges




                  103k12 gold badges38 silver badges70 bronze badges










                  answered Jan 24 '18 at 8:40









                  Ahad aghapourAhad aghapour

                  1,5571 gold badge15 silver badges28 bronze badges




                  1,5571 gold badge15 silver badges28 bronze badges



























                      draft saved

                      draft discarded
















































                      Thanks for contributing an answer to Stack Overflow!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid


                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.

                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function ()
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f46544780%2fqtdesigner-changes-will-be-lost-after-redesign-user-interface%23new-answer', 'question_page');

                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      Kamusi Yaliyomo Aina za kamusi | Muundo wa kamusi | Faida za kamusi | Dhima ya picha katika kamusi | Marejeo | Tazama pia | Viungo vya nje | UrambazajiKuhusu kamusiGo-SwahiliWiki-KamusiKamusi ya Kiswahili na Kiingerezakuihariri na kuongeza habari

                      SQL error code 1064 with creating Laravel foreign keysForeign key constraints: When to use ON UPDATE and ON DELETEDropping column with foreign key Laravel error: General error: 1025 Error on renameLaravel SQL Can't create tableLaravel Migration foreign key errorLaravel php artisan migrate:refresh giving a syntax errorSQLSTATE[42S01]: Base table or view already exists or Base table or view already exists: 1050 Tableerror in migrating laravel file to xampp serverSyntax error or access violation: 1064:syntax to use near 'unsigned not null, modelName varchar(191) not null, title varchar(191) not nLaravel cannot create new table field in mysqlLaravel 5.7:Last migration creates table but is not registered in the migration table

                      은진 송씨 목차 역사 본관 분파 인물 조선 왕실과의 인척 관계 집성촌 항렬자 인구 같이 보기 각주 둘러보기 메뉴은진 송씨세종실록 149권, 지리지 충청도 공주목 은진현