- PyQt5 Tutorial - 파이썬으로 만드는 나만의 GUI 프로그램
- 1. PyQt5 소개 (Introduction)
- 2. PyQt5 설치 (Installation)
- 3. PyQt5 기초 (Basics)
- 4. PyQt5 레이아웃 (Layout)
- 5. PyQt5 위젯 (Widget)
- QPushButton
- QLabel
- QCheckBox
- QRadioButton
- QComboBox
- QLineEdit
- QLineEdit (Advanced)
- QProgressBar
- QSlider & QDial
- QSplitter
- QGroupBox
- QTabWidget
- QTabWidget (Advanced)
- QPixmap
- QCalendarWidget
- QSpinBox
- QDoubleSpinBox
- QDateEdit
- QTimeEdit
- QDateTimeEdit
- QTextBrowser
- QTextBrowser (Advanced)
- QTextEdit
- QTableWidget
- QTableWidget (Advanced)
- 6. PyQt5 다이얼로그 (Dialog)
- 7. PyQt5 시그널과 슬롯 (Signal&Slot)
- 8. PyQt5 그림 그리기 (Updated)
- 9. PyQt5 실행파일 만들기 (PyInstaller)
- 10. PyQt5 프로그램 예제 (Updated)
- ▷ PDF ebook
- Python Tutorial
- NumPy Tutorial
- Matplotlib Tutorial
- PyQt5 Tutorial
- BeautifulSoup Tutorial
- xlrd/xlwt Tutorial
- Pillow Tutorial
- Googletrans Tutorial
- PyWin32 Tutorial
- PyAutoGUI Tutorial
- Pyperclip Tutorial
- TensorFlow Tutorial
- Tips and Examples
직선 그리기 (drawLine)¶
이번 예제에서는 drawLine()을 이용해서 위젯에 다양한 스타일의 직선을 그려 보겠습니다.
예제¶
## Ex 8-2. 직선 그리기 (drawLine).
import sys
from PyQt5.QtWidgets import QWidget, QApplication
from PyQt5.QtGui import QPainter, QPen
from PyQt5.QtCore import Qt
class MyApp(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 400, 300)
self.setWindowTitle('drawLine')
self.show()
def paintEvent(self, e):
qp = QPainter()
qp.begin(self)
self.draw_line(qp)
qp.end()
def draw_line(self, qp):
qp.setPen(QPen(Qt.blue, 8))
qp.drawLine(30, 230, 200, 50)
qp.setPen(QPen(Qt.green, 12))
qp.drawLine(140, 60, 320, 280)
qp.setPen(QPen(Qt.red, 16))
qp.drawLine(330, 250, 40, 190)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = MyApp()
sys.exit(app.exec_())
세 개의 직선이 그려졌습니다.
setPen()을 이용해서 선의 색깔과 두께를 설정해주고,
drawLine(x1, y1, x2, y2)의 형태로 선의 양 끝점의 위치를 정수로 입력해줍니다.
결과는 아래와 같습니다.
def draw_line(self, qp):
qp.setPen(QPen(Qt.black, 3, Qt.SolidLine))
qp.drawLine(20, 20, 380, 20)
qp.drawText(30, 40, 'Qt.SolidLine')
qp.setPen(QPen(Qt.black, 3, Qt.DashLine))
qp.drawLine(20, 70, 380, 70)
qp.drawText(30, 90, 'Qt.DashLine')
qp.setPen(QPen(Qt.black, 3, Qt.DotLine))
qp.drawLine(20, 120, 380, 120)
qp.drawText(30, 140, 'Qt.DotLine')
qp.setPen(QPen(Qt.black, 3, Qt.DashDotLine))
qp.drawLine(20, 170, 380, 170)
qp.drawText(30, 190, 'Qt.DashDotLine')
qp.setPen(QPen(Qt.black, 3, Qt.DashDotDotLine))
qp.drawLine(20, 220, 380, 220)
qp.drawText(30, 240, 'Qt.DashDotDotLine')
pen = QPen(Qt.black, 3, Qt.CustomDashLine)
pen.setDashPattern([4, 3, 2, 5])
qp.setPen(pen)
qp.drawLine(20, 270, 380, 270)
qp.drawText(30, 290, 'Qt.CustomDashLine')
Qt.SolidLine, Qt.DashLine 등을 입력하면 다양한 형태의 선 종류를 설정할 수 있습니다.
결과는 아래 그림과 같습니다.
이전글/다음글
이전글 : 점 그리기 (drawPoint)
다음글 : 직사각형 그리기 (drawRect)