12๊ฐ. ๋ฌธ๋จ ์ ๋ ฌ

1. ๋ชฉํ
PySide6 QTextEdit ์์ ฏ์ ๋ค์ ๋ค ๊ฐ์ง ๋ฌธ๋จ ์ ๋ ฌ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ณ ์ฐ์ตํ๋ค.
- ์ผ์ชฝ ์ ๋ ฌ
- ๊ฐ์ด๋ฐ ์ ๋ ฌ
- ์ค๋ฅธ์ชฝ ์ ๋ ฌ
- ์์ชฝ ์ ๋ ฌ(Justify)
๊ทธ๋ฆฌ๊ณ
- QMenu ์ QAction ๊ณผ ์ฌ๋กฏ ํจ์ ์ฐ๊ฒฐ ๋ฐฉ์ ๋ณต์ต
- Qt.AlignmentFlag ๋ฅผ ์ด์ฉํ setAlignment ์ฌ์ฉ ๋ฐฉ๋ฒ ์ดํด
2. ์ ์ฒด ๋ก์ง
# mainwindow.py
from PySide6.QtCore import Qt
. . .
class MainWindow(QMainWindow):
def __init__(self, parent=None):
. . .
self.ui.actionLeft.triggered.connect(self.align_left)
self.ui.actionCenter.triggered.connect(self.align_center)
self.ui.actionRight.triggered.connect(self.align_right)
self.ui.actionJustify.triggered.connect(self.justify)
. . .
def align_left(self):
self.editor.setAlignment(Qt.AlignmentFlag.AlignLeft)
def align_center(self):
self.editor.setAlignment(Qt.AlignmentFlag.AlignCenter)
def align_right(self):
self.editor.setAlignment(Qt.AlignmentFlag.AlignRight)
def justify(self):
self.editor.setAlignment(Qt.AlignmentFlag.AlignJustify)
# main.py
import sys
from PySide6.QtWidgets import QApplication
from mainwindow import MainWindow
if __name__ == "__main__":
app = QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec())
3. ํ์ํ import + ์ฃผ์ ์ค๋ช
from PySide6.QtCore import Qt
# Qt
# ์ ๋ ฌ, ๋ฐฉํฅ, ๋ง์ฐ์ค ๋ฒํผ, ํค๋ณด๋ ์์ ์ ๋ฑ
# ๋ค์ํ ์์(enum)๋ฅผ ๋ชจ์ ๋ ๋ค์์คํ์ด์ค
# ์ฌ๊ธฐ์๋ AlignmentFlag.AlignLeft ๊ฐ์ ์ ๋ ฌ ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด import ํ๋ค
4. ๋ฉ๋ด ์ก์
๊ณผ ์ฌ๋กฏ ์ฐ๊ฒฐํ๊ธฐ
class MainWindow(QMainWindow):
def __init__(self, parent=None):
super().__init__(parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
# QTextEdit ์ ์์ฃผ ์ ๊ทผํ๋ฏ๋ก ๋ณ์นญ์ ๋ง๋ค์ด ๋๋ค
# self.ui.textEdit ์ ๊ทธ๋๋ก ์จ๋ ๋์ง๋ง, editor ๋ผ๋ ์ด๋ฆ์ผ๋ก ์ฐ๋ฉด ์ฝ๋๊ฐ ๋ ๊ฐ๊ฒฐํด์ง๋ค
self.editor = self.ui.textEdit
# ๋ฌธ๋จ ์ ๋ ฌ ์ก์
์ ์ฌ๋กฏ์ ์ฐ๊ฒฐํ๋ค
# Qt Designer ์ objectName ๊ธฐ์ค์ผ๋ก actionLeft, actionCenter, actionRight, actionJustify ๊ฐ ์๋ค๊ณ ๊ฐ์ ํ๋ค
# ํ์ผ ๋ฉ๋ด์ ํด๋ฐ์ ์๋ ์ข์ธก ์ ๋ ฌ ์ก์
์ align_left ํจ์์ ์ฐ๊ฒฐ
self.ui.actionLeft.triggered.connect(self.align_left)
# ๊ฐ์ด๋ฐ ์ ๋ ฌ ์ก์
์ align_center ํจ์์ ์ฐ๊ฒฐ
self.ui.actionCenter.triggered.connect(self.align_center)
# ์ฐ์ธก ์ ๋ ฌ ์ก์
์ align_right ํจ์์ ์ฐ๊ฒฐ
self.ui.actionRight.triggered.connect(self.align_right)
# ์์ชฝ ์ ๋ ฌ ์ก์
์ justify ํจ์์ ์ฐ๊ฒฐ
self.ui.actionJustify.triggered.connect(self.justify)
์ด ๋จ๊ณ์์๋ ์ด๋ฏธ form.ui ์ ๋ค์ QAction ์ด ์ค๋น๋์ด ์๋ค๊ณ ๊ฐ์ ํ๋ค.
- actionLeft
- actionCenter
- actionRight
- actionJustify
5. ์ ๋ ฌ ๊ธฐ๋ฅ ๊ตฌํ ํจ์
def align_left(self):
# ์ผ์ชฝ ์ ๋ ฌ
# AlignLeft ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ฌ ๋ฌธ๋จ(๋๋ ์ ํ๋ ๋ฌธ๋จ๋ค)์ ์ผ์ชฝ์ผ๋ก ์ ๋ ฌํ๋ค
# ์ผ๋ฐ์ ์ธ ๋ฉ๋ชจ์ฅ ๊ธฐ๋ณธ ์ ๋ ฌ ๋ฐฉ์๊ณผ ๋์ผํ๋ค
self.editor.setAlignment(Qt.AlignmentFlag.AlignLeft)
def align_center(self):
# ๊ฐ์ด๋ฐ ์ ๋ ฌ
# ์ ๋ชฉ์ด๋ ๊ฐ์กฐํ๊ณ ์ถ์ ๋ฌธ์ฅ์ ์ค์์ ๋ฐฐ์นํ ๋ ์ฌ์ฉํ๋ค
self.editor.setAlignment(Qt.AlignmentFlag.AlignCenter)
def align_right(self):
# ์ค๋ฅธ์ชฝ ์ ๋ ฌ
# ๋ ์ง๋ ์๋ช
์ฒ๋ผ ์ค๋ฅธ์ชฝ ๋์ ๋ง์ถ๊ณ ์ถ์ ์ ๋ณด๋ฅผ ์ ์ ๋ ์ ์ฉํ๋ค
self.editor.setAlignment(Qt.AlignmentFlag.AlignRight)
def justify(self):
# ์์ชฝ ์ ๋ ฌ
# ์ผ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ ์ฌ๋ฐฑ์ ๋ชจ๋ ๋ง์ถ๋๋ก ๋จ์ด ๊ฐ ๊ฐ๊ฒฉ์ ์กฐ์ ํ๋ ์ ๋ ฌ ๋ฐฉ์์ด๋ค
# ๋ฌธ๋จ ์ ์ฒด๊ฐ ์ง์ฌ๊ฐํ ๋ธ๋ก ํํ๋ก ์ ๋ ฌ๋์ด ๋ฌธ์๊ฐ ์ ๋๋ ๋๋์ ์ค๋ค
self.editor.setAlignment(Qt.AlignmentFlag.AlignJustify)
QTextEdit ๊ฐ ๋ฌธ๋จ ๋จ์๋ก ์ ๋ ฌ์ ์ฒ๋ฆฌํด ์ฃผ๊ธฐ ๋๋ฌธ์, ๋ณ๋์ ์ปค์ ์กฐ์ ์์ด setAlignment ๋ง ํธ์ถํด๋ ๋๋ค.
6. ์คํ ํ ์คํธ
7. ํ์ต ์ฃผ์ ํฌ์ธํธ
QTextEdit ๋ฌธ๋จ ์ ๋ ฌ ๋ฉ์๋
- setAlignment ๋ฉ์๋๋ ํ์ฌ ์ปค์๊ฐ ์์นํ ๋ฌธ๋จ ๋๋ ์ ํ๋ ๋ฌธ๋จ๋ค ์ ์ฒด์ ์ ์ฉ๋๋ค.
- ์ธ์๋ก Qt.AlignmentFlag ๊ฐ์ ์ ๋ฌํ๋ค.
Qt.AlignmentFlag ์ฌ์ฉ๋ฒ
- AlignLeft, AlignCenter, AlignRight, AlignJustify ๋ฑ ๋ค์ํ ์ ๋ ฌ ์์๊ฐ ์ค๋น๋์ด ์๋ค.
- import Qt ํ Qt.AlignmentFlag.์์๋ช ํํ๋ก ์ฌ์ฉํ๋ ํจํด์ ์ต์ํด์ง๋ ๊ฒ์ด ์ค์ํ๋ค.
QAction ๊ณผ ์ฌ๋กฏ ์ฐ๊ฒฐ
- ๋ฉ๋ด์ ํด๋ฐ์ ์๋ QAction ์ triggered ์๊ทธ๋์
MainWindow ์ ์ฌ๋กฏ ํจ์ align_left, align_center ๋ฑ๊ณผ ์ฐ๊ฒฐํ์ฌ ๊ธฐ๋ฅ์ ๊ตฌ์ฑํ๋ค. - objectName ๊ณผ ์ฝ๋์ ์ก์ ์ด๋ฆ์ด ์ ํํ ์ผ์นํด์ผ ํ๋ค.
editor ๋ณ์นญ ์ฌ์ฉ
- self.ui.textEdit ์ ๊ทธ๋๋ก ๋งค๋ฒ ์ฐ๋ ๋์
self.editor ๋ก ๋ณ์นญ์ ๋ง๋ค์ด ์ฌ์ฉํ๋ฉด ์ฝ๋๊ฐ ๊ฐ๊ฒฐํด์ง๊ณ ๊ฐ๋ ์ฑ์ด ์ข์์ง๋ค. - ์์ ์์๋ ๋ ๋ฐฉ์ ๋ชจ๋ ๋ณด์ฌ์ฃผ๊ณ , ๋ณ์นญ์ ์ฐ๋ ์ด์ ๋ฅผ ์ค๋ช ํด ์ฃผ๋ฉด ์ข๋ค.
ํ์ผ IO ์์ ๋ถ๋ฆฌ
- ๋ฌธ๋จ ์ ๋ ฌ ๊ธฐ๋ฅ์ ํ์ผ ์ ์ถ๋ ฅ๊ณผ ์์ ํ ๋ ๋ฆฝ์ ์ด๋ค.
- ์ด ๋จ๊ณ์์๋ ์๋์ ์ผ๋ก QFile, QIODevice, QDir, QTextStream ์ ์ฌ์ฉํ์ง ์๊ณ
ํธ์ง๊ธฐ ๋ด๋ถ ์์ ์กฐ์์๋ง ์ง์คํ๋๋ก ๊ตฌ์ฑํ๋ค.
๋จ๊ณ๋ณ ์์ฑ ํ์ผ
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
