{"id":538,"date":"2020-05-15T16:01:49","date_gmt":"2020-05-15T07:01:49","guid":{"rendered":"http:\/\/batmask.dothome.co.kr\/?p=538"},"modified":"2020-05-15T16:01:49","modified_gmt":"2020-05-15T07:01:49","slug":"python-qt-qt-designer-%ec%82%ac%ec%9a%a9%ed%95%98%ea%b8%b0","status":"publish","type":"post","link":"http:\/\/batmask.net\/index.php\/2020\/05\/15\/538\/","title":{"rendered":"Python QT : QT Designer \uc0ac\uc6a9\ud558\uae30"},"content":{"rendered":"\n<p>UI\ub97c \ub9cc\ub4e4 \ub54c, \ucf54\ub4dc\ub85c \ud558\ub098\uc529 \ub9cc\ub4e4\uc5b4\uac00\ub294 \ubc29\ubc95\ub3c4 \uc54c\uc544\uc57c \ud558\uc9c0\ub9cc, \ub108\ubb34 \ube44\ud6a8\uc728\uc801\uc774\ub2e4. Qt\uc5d0\ub294 Qt Designer\ub77c\ub294\uac8c \uc788\uace0, UI \ucd08\uc548\uc744 \uc774\uac78\ub85c \ub9cc\ub4e4\uba74 \ub9e4\uc6b0 \ube60\ub974\uac8c \uc0dd\uc131\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-dots\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Qt Designer \uc5d0\uc11c Widget \ubc30\uce58\ud558\uae30<\/h2>\n\n\n\n<p> Qt Designer\ub97c \ucc98\uc74c \uc811\ud588\uc744 \ub54c, Widget\ub4e4\uc744 \uc5b4\ub5bb\uac8c \ubc30\uce58\ud560\uc9c0 \ub09c\uac10\ud588\ub2e4. \uc774\uac78 \uae30\ub85d\ud558\ub294 \uc774\uc720\ub3c4 \ub09c\uac10\ud588\ub358 \uae30\uc5b5\uc744 \uc78a\uc9c0 \uc54a\uae30\uc704\ud574 \ud558\ub294 \uac83\uc774\ub2e4. \ucf54\ub4dc\ub85c UI\ub97c \uad6c\uc131\ud560 \ub54c,  Layout\uc73c\ub85c Widget\uc758 \ubc30\uce58\ub97c \ud55c\ub2e4\ub294\uac78 \uc54c \uc218 \uc788\ub2e4. \uc774\ub97c \uc774\uc6a9\ud558\uba74 \ub418\uc9c0\ub9cc, \uc9c1\uc811\ud574\ubcf4\uba74 \ud0d1\ub2e4\uc6b4 \ud615\ud0dc\ub85c \ub9cc\ub4e4\uc5b4 \uac00\ub294\uac74 \uc5b4\ub835\ub2e4. \uc791\uc740 \ubd80\ubd84\ubd80\ud130 \ud558\ub098\uc529 \uc544\ub798\uc5d0\uc11c \uc870\ub9bd\ud574 \uc62c\ub77c\uac00\uc57c \ud55c\ub2e4. \uac04\ub2e8\ud55c \uc2dc\uc5f0\uc601\uc0c1\uc744 \ub9cc\ub4e4\uc5b4 \ubd24\ub2e4.<\/p>\n\n\n\n<figure class=\"wp-block-embed-youtube aligncenter wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Qt Designer \uae30\ubcf8 \uc0ac\uc6a9\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/yenkxwptV8w?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><figcaption><em>Qt Designer \uae30\ubcf8 \uc0ac\uc6a9<\/em><\/figcaption><\/figure>\n\n\n\n<hr class=\"wp-block-separator is-style-dots\"\/>\n\n\n\n<p>\uc0ac\uc6a9\ud560 Widget\ub4e4\uc744 \ub4dc\ub798\uadf8\ud574\uc11c \uc708\ub3c4\uc6b0\uc5d0 \uc0dd\uc131\ud558\uace0, \uc791\uc740 \ubd80\ubd84\ubd80\ud130 \uc870\ub9bd\ud558\ub4ef\uc774 \ub808\uc774\uc544\uc6c3\uc73c\ub85c \ubb36\uc73c\uba70 \ub9cc\ub4e4\uc5b4\uac04\ub2e4. \uc5ec\ub7ec\uac1c\uc758 Widget\uc744 \uc120\ud0dd\ud55c \ud6c4, \ub9c8\uc6b0\uc2a4 \uc624\ub978\ucabd \ubc84\ud2bc\uc744 \ub204\ub974\uba74 &#8216;\ubc30\uce58&#8217;\ud56d\ubaa9\uc774 \uc788\ub294\ub370 \uc774\uac78 \uc774\uc6a9\ud558\uba74 \uac00\ub2a5\ud558\ub2e4.<\/p>\n\n\n\n<p>Widget\uc774\ub098 Layout\uc758 \uc774\ub984\uc740 \ud544\uc218\ub85c \uc54c\uc544\ubcf4\uae30 \uc27d\uac8c \uc9c0\uc815\ud55c\ub2e4. widget\uc758 \ubc30\uce58 \ube44\uc728\uc744 \ub2ec\ub9ac\ud574\uc57c \ud558\ub294\uacbd\uc6b0, \ud544\uc694\ud558\uba74 Spacer\ub97c \ub123\uc5b4 \ube48 \uacf5\uac04\uc744 \ub9cc\ub4e4\uace0 layoutStretch \uc18d\uc131\uc73c\ub85c \uac01 \uc704\uc82f\uc758 \ube44\uc728\uc744 \ub9de\ucdb0\uc900\ub2e4.<\/p>\n\n\n\n<p>\uc601\uc0c1\uc5d0\uc11c\ub294 \ubcf4\uc5ec\uc8fc\uc9c0 \uc54a\uc558\uc9c0\ub9cc, \uc624\ub978\ucabd \ub178\ub780\uc0c9\uc73c\ub85c \ubcf4\uc774\ub294 \uc601\uc5ed\uc5d0 widget\uc758 property\ub97c \uc124\uc815\ud574\uc8fc\ub294 \ud56d\ubaa9\uc774 \uc788\ub2e4. \uc774 \uc124\uc815\uc744 \uc774\uc6a9\ud574\uc11c \uae30\ubcf8\uc801\uc778 \uc124\uc815\ub4e4\uc744 \ud574\uc900\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-dots\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">sizePolicy property \uc640 sizeHint<\/h2>\n\n\n\n<p>property\ub4e4\uc911 \uc911\uc694\ud55c\uac8c sizeHint\uc640 sizePolicy \uc18d\uc131\uc774\ub2e4. widget\uc758 \uae30\ubcf8\ud06c\uae30\ubc0f \ud06c\uae30\ubcc0\uacbd\uc5d0 \ub300\ud55c \ub3d9\uc791\uc774 \uc774 \uc124\uc815\uc5d0 \uc758\ud574 \uc815\ud574\uc9c4\ub2e4. size\uc5d0 \ub300\ud574 minimum\uacfc maximum\uac12\ub4e4\ub3c4 \uc874\uc7ac\ud558\uc9c0\ub9cc, \uc8fc\uc758\ud560 \uc810\uc740 \uc774 size \uad00\ub828 properties\ub4e4\uc774 sizeHint\uc640 \uc9c1\uc811\uc801 \uad00\ub828\uc774 \uc5c6\ub2e4. \uc608\ub97c\ub4e4\uc5b4, QLineEdit\uc758 \uacbd\uc6b0 font\uc5d0 \uc758\uc874\uc131\uc744 \uac00\uc9c0\ub294 \uace0\uc815 \ub192\uc774\ub97c \uac16\uac8c\ub41c\ub2e4. \ub9cc\uc57d, sizeHint()\uac12\uc744 \ubcc0\uacbd\ud558\uace0 \uc2f6\uc73c\uba74, minimum, maximum \uc18d\uc131\uc744 \ub3d9\uc77c\ud558\uac8c \ub9cc\ub4e4\uac70\ub098, \ucf54\ub4dc\uc5d0\uc11c \uba54\uc18c\ub4dc\ub97c \uc624\ubc84\ub77c\uc774\ub4dc\ud574\uc57c \ud55c\ub2e4. \uac04\ub2e8\ud558\uac8c sizePolicy\ub4e4\uc744 \uc54c\uc544\ubcf4\uba74 \ub2e4\uc74c\uacfc \uac19\ub2e4. <\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>QSizePolicy.Fixed : sizeHint()\uc758 \ud06c\uae30\ub85c \uace0\uc815<\/li><li>QSizePolicy.minimum : sizeHint() \uac00 minimum\uc774 \ub41c\ub2e4. \uc774\ubcf4\ub2e4 \uc791\uc544\uc9c8 \uc218 \uc5c6\uc74c.<\/li><li>QSizePolicy.maximum : sizeHint() \uac00 maximum\uc774 \ub41c\ub2e4. \uc774\ubcf4\ub2e4 \ucee4\uc9c8 \uc218 \uc5c6\uc74c.<\/li><li>QSizePolicy.Preferred : sizeHint()\uac00 \ucd5c\uc801\uc758 \ud06c\uae30\uc774\ub098 \ud06c\uae30\ubcc0\uacbd \uac00\ub2a5. \ucd5c\uc18c \ud06c\uae30\ub294 minimumSizeHint()\ub85c \uc815\ud574\uc9c4\ub2e4.<\/li><li>QSizePolicy.Expanding : sizeHint()\uac00 \ucd5c\uc801\uc758 \ud06c\uae30\uc774\uc9c0\ub9cc, \ub354 \uc791\uc544\uc9c8 \uc218 \uc788\ub2e4. \uacf5\uac04\uc774 \ub354 \ucee4\uc9c0\ub294 \uacbd\uc6b0\uc5d0(Expanding) \uadf8 \uacf5\uac04\uc744 \ub2e4 \uc0ac\uc6a9\ud558\uac8c\ub41c\ub2e4. \uc608\ub85c \uc218\ud3c9 \uc2ac\ub77c\uc774\ub354\uac00 \uc788\ub2e4.<\/li><li>QSizePolicy.MinimumExpanding : sizeHint()\uac00 \ucd5c\uc18c\uc774\uba74\uc11c \ucd5c\uc801\uc758 \ud06c\uae30\uc774\ub2e4. \ub9c8\ucc2c\uac00\uc9c0\ub85c \uacf5\uac04\uc774 \ub354 \ub298\uc5b4\ub098\uba74 \uadf8 \uacf5\uac04\uc744 \ub354 \uc0ac\uc6a9\ud55c\ub2e4.<\/li><li>QSizePolicy.Ignored : sizeHint()\uac00 \ubb34\uc2dc\ub41c\ub2e4.<\/li><\/ul>\n\n\n\n<hr class=\"wp-block-separator is-style-dots\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">pyside2-uic : ui -> py \ud30c\uc77c \ubcc0\ud658<\/h2>\n\n\n\n<p>QT Designer\uc5d0\uc11c ui \ud30c\uc77c\uc744 \uc644\uc131\ud558\uba74, python\ud30c\uc77c\ub85c \ubcc0\ud658\uc774 \uac00\ub2a5\ud558\ub2e4. pyside2 \ub97c \uc124\uce58\ud558\uba74 \uc0ac\uc6a9\uac00\ub2a5\ud55c pyside2-uic \ucee4\ub9e8\ub4dc\ub97c \uc0ac\uc6a9\ud55c\ub2e4. \ubcc0\ud658\ud560 ui\ud30c\uc77c\uc744 \uc778\uc790\ub85c \uc8fc\uace0 -o \uc635\uc158\uc73c\ub85c \ucd9c\ub825\ud560 \ud30c\uc77c\uba85\uc744 \uc801\ub294\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ pyside2-uic.exe music_player.ui -o playerUI.py<\/code><\/pre>\n\n\n\n<p>\uc0dd\uc131\ub41c ui python \ud30c\uc77c\uc740 \uadf8\ub300\ub85c \uc0ac\uc6a9\uac00\ub2a5\ud558\ub098, \ub2e4\uc74c\ucc98\ub7fc QMainWindow\ub098  QWidget\uc744 \uc0c1\uc18d\ubc1b\uc740 \ud074\ub798\uc2a4\ub97c \ud558\ub098 \ub9cc\ub4e4\uace0, \uadf8 \uc548\uc5d0 \ud3ec\ud568\uc2dc\ucf1c \uc0ac\uc6a9\ud558\ub294\uac8c \ud3b8\ud558\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">class MainWindow(QMainWindow):\n    def __init__(self):\n        super().__init__()\n        self.ui = Ui_MainWindow()\n        self.ui.setupUi(self)\n...<\/code><\/pre>\n\n\n\n<p>MainWindow\ub85c \uc0dd\uc131\ud558\uba74 QT Designer\uc5d0\uc11c \uc0dd\uc131\ub41c \ud074\ub798\uc2a4\uac00 Ui_MainWindow\uc774\uace0, ui \uc0dd\uc131\ud558\ub294 \uba54\uc18c\ub4dc\ub85c setupUi()\uac00 \uc81c\uacf5\ub41c\ub2e4. \uc774\ub97c \uc2e4\ud589\ud558\uae30 \uc704\ud55c \uba54\uc778\ud568\uc218\ub294 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">def main():\n    app = QApplication(sys.argv)\n    main_view = MainWindow()\n    main_view.show()\n    sys.exit(app.exec_())\n\n\nif __name__ == \"__main__\":\n    main()<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator is-style-dots\"\/>\n\n\n\n<p>\ucc38\uace0 \ub9c1\ud06c <br> &#8211; <a href=\"https:\/\/wikidocs.net\/36590\">https:\/\/wikidocs.net\/36590<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>UI\ub97c \ub9cc\ub4e4 \ub54c, \ucf54\ub4dc\ub85c \ud558\ub098\uc529 \ub9cc\ub4e4\uc5b4\uac00\ub294 \ubc29\ubc95\ub3c4 \uc54c\uc544\uc57c \ud558\uc9c0\ub9cc, \ub108\ubb34 \ube44\ud6a8\uc728\uc801\uc774\ub2e4. Qt\uc5d0\ub294 Qt Designer\ub77c\ub294\uac8c \uc788\uace0, UI \ucd08\uc548\uc744 \uc774\uac78\ub85c \ub9cc\ub4e4\uba74 \ub9e4\uc6b0 \ube60\ub974\uac8c \uc0dd\uc131\ud560 \uc218 \uc788\ub2e4. Qt Designer \uc5d0\uc11c Widget \ubc30\uce58\ud558\uae30 Qt Designer\ub97c \ucc98\uc74c \uc811\ud588\uc744 \ub54c, Widget\ub4e4\uc744 \uc5b4\ub5bb\uac8c \ubc30\uce58\ud560\uc9c0 \ub09c\uac10\ud588\ub2e4. \uc774\uac78 \uae30\ub85d\ud558\ub294 \uc774\uc720\ub3c4 \ub09c\uac10\ud588\ub358 \uae30\uc5b5\uc744 \uc78a\uc9c0 \uc54a\uae30\uc704\ud574 \ud558\ub294 \uac83\uc774\ub2e4. \ucf54\ub4dc\ub85c UI\ub97c \uad6c\uc131\ud560 \ub54c, Layout\uc73c\ub85c Widget\uc758 \ubc30\uce58\ub97c \ud55c\ub2e4\ub294\uac78 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[33],"tags":[169,57,58,35,56,55],"class_list":["post-538","post","type-post","status-publish","format-standard","hentry","category-python","tag-designer","tag-pyside2","tag-pyside2-uic","tag-python","tag-qt","tag-python-kr"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/posts\/538","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/comments?post=538"}],"version-history":[{"count":9,"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/posts\/538\/revisions"}],"predecessor-version":[{"id":548,"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/posts\/538\/revisions\/548"}],"wp:attachment":[{"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/media?parent=538"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/categories?post=538"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/tags?post=538"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}