Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 3 additions & 69 deletions test01.py → Mainwindow.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import Qt, pyqtSlot
import Tablewidget

# text_extract.py import
import text_extract as te
Expand Down Expand Up @@ -53,7 +54,7 @@ def fileopen(self):
fname = QFileDialog.getOpenFileName(self, self.tr("열기"), "",
self.tr("이미지 파일 (*.jpg *.jpeg *.bmp *.png);;"
"문서 파일 (*.txt *.docx *.pdf *.hwp *.pptx)"))
MyWidget.filename = fname[0]
Tablewidget.MyWidget.filename = fname[0]
self.statusBar().showMessage("열림 : " + fname[0])

def setfilesave(self, menu):
Expand Down Expand Up @@ -92,77 +93,10 @@ def setexit(self, menu):

def components(self):
# wg = MyWidget()
self.table_widget = MyTableWidget(self)
self.table_widget = Tablewidget.MyTableWidget(self)
self.setCentralWidget(self.table_widget)


class MyTableWidget(QWidget):
def __init__(self, parent):
super(QWidget, self).__init__(parent)
self.layout = QVBoxLayout(self);

# 탭 스크린 설정
self.tabs = QTabWidget()
self.tab1 = MyWidget()
self.tab2 = MyWidget()
self.tab2.label1.setText("텍스트 입력창")
self.tab2.label2.setText("점자 결과창")
self.tab2.text1.setText(self.tab1.text2.toPlainText())
self.tabs.resize(1000, 800)
self.tabs.addTab(self.tab1, "image -> text")
self.tabs.addTab(self.tab2, "text -> brail text")

self.layout.addWidget(self.tabs)
self.setLayout(self.layout)

""" #참조 블로그에 있던 메소드. 무슨 용도인지 모르겠음.
@pyqtSlot()
def on_click(self):
print("/n")
for currentQTableWidgetItem in self.tableWidget.selectedItems():
print(currentQTableWidgetItem.row(), currentQTableWidgetItem.column(), currentQTableWidgetItem.text())
"""


class MyWidget(QWidget):
filename = ""

def __init__(self):
super().__init__()

# 라벨-파일 선택 안내문
self.label1 = QLabel('파일 입력창', self)
self.label1.setAlignment(Qt.AlignVCenter)
self.label2 = QLabel('텍스트 결과창', self)
self.label1.setAlignment(Qt.AlignVCenter)
# 버튼 - 파일 변환창
self.btn2 = QPushButton('파일 변환', self)
self.btn2.clicked.connect(self.WriteText)
# 텍스트 출력창
self.text1 = QTextEdit()
self.text2 = QTextEdit()

grid = QGridLayout()
self.setLayout(grid)
grid.addWidget(self.label1, 0, 0)
grid.addWidget(self.text1, 1, 0)
grid.addWidget(self.btn2, 1, 1)
grid.addWidget(self.label2, 0, 2)
grid.addWidget(self.text2, 1, 2)

self.setGeometry(300, 100, 350, 150)
self.setWindowTitle("QWidget")
self.show()

# 텍스트 박스에 있는 내용을 비우고 다시 씀
def WriteText(self):
# 파일로부터 텍스트를 읽어옴
text = te.ReturnText(self.filename)
# text2 창에 읽어온 텍스트를 출력
self.text2.setPlainText(text)
# MyTableWidget._init__.tab1.text2.setPlainText(text)


if __name__ == '__main__':
app = QApplication(sys.argv)
ex = MyMainWindow()
Expand Down
113 changes: 113 additions & 0 deletions Tablewidget.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qt
from PyQt5.QtPrintSupport import QPrinter, QPrintDialog
from PyQt5.QtGui import QPainter

import text_extract as te


class MyTableWidget(QWidget):
def __init__(self, parent):
super(QWidget, self).__init__(parent)
self.layout = QVBoxLayout(self);

# 탭 스크린 설정
self.tabs = QTabWidget()
self.tab1 = MyWidget()
self.tab1.label1.setText("파일 입력창")
self.tab1.label2.setText("텍스트 결과창")
self.tab2 = MyWidget()
self.tab2.label1.setText("텍스트 입력창")
self.tab2.label2.setText("점자 결과창")
self.tab2.text1.setText(self.tab1.text2.toPlainText())
self.tabs.resize(1000, 800)
self.tabs.addTab(self.tab1, "image -> text")
self.tabs.addTab(self.tab2, "text -> brail text")

self.layout.addWidget(self.tabs)
self.setLayout(self.layout)

class MyWidget(QWidget):
filename = ""

def __init__(self):
super().__init__()

# 라벨-파일 선택 안내문
self.label1 = QLabel('입력창', self)
self.label1.setAlignment(Qt.AlignVCenter)
self.label2 = QLabel('결과창', self)
self.label1.setAlignment(Qt.AlignVCenter)
# 버튼 - 파일 변환창
self.btn2 = QPushButton('파일 변환', self)
self.btn2.clicked.connect(self.WriteText)
# 텍스트 출력창
self.text1 = QTextEdit()
self.text2 = QTextEdit()

#버튼 - 프린터 생성
self.btn3 = QPushButton('Print PDF File', self)
self.btn3.clicked.connect(self.btnClickPrint)

#슬라이더 - 확대 축소 기능
self.slider = QSlider(Qt.Horizontal, self)
self.slider.setRange(8, 30)
self.slider.setSingleStep(2)
self.slider.valueChanged.connect(self.font_slider)

#슬라이더 값에 따라 text1의 폰트 크기 조절


grid = QGridLayout()
self.setLayout(grid)
grid.addWidget(self.label1, 0, 0)
grid.addWidget(self.text1, 1, 0)
grid.addWidget(self.btn2, 1, 1)
grid.addWidget(self.label2, 0, 2)
grid.addWidget(self.text2, 1, 2)
grid.addWidget(self.btn3, 2, 0)
grid.addWidget(self.slider, 2, 2)

self.setGeometry(300, 100, 350, 150)
#self.setWindowTitle("QWidget")
self.show()

# 텍스트 박스에 있는 내용을 비우고 다시 씀
def WriteText(self):
# 파일로부터 텍스트를 읽어옴
text = te.ReturnText(self.filename)
# text2 창에 읽어온 텍스트를 출력
self.text2.setPlainText(text)
# MyTableWidget._init__.tab1.text2.setPlainText(text)

# 확대 축소 기능을 폰트 조절로 구현하려 했으나 에러 발생
def font_slider(self):
self.text1.setFontPointSize(self, self.slider.value)

# 프린터 생성, 실행
def btnClickPrint(self):
printer = QPrinter()
dlg = QPrintDialog(printer, self)
if dlg.exec() == QDialog.Accepted:
#Painter 생성
qp = QPainter()
qp.begin(printer)

# 여백 비율
wgap = printer.pageRect().width() * 0.1
hgap = printer.pageRect().height() * 0.1

# 화면 중앙에 위젯 배치
xscale = (printer.pageRect().width() - wgap) / self.table.width()
yscale = (printer.pageRect().height() - hgap) / self.table.height()
scale = xscale if xscale < yscale else yscale
qp.translate(printer.paperRect().x() + printer.pageRect().width() / 2,
printer.paperRect().y() + printer.pageRect().height() / 2)
qp.scale(scale, scale);
qp.translate(-self.table.width() / 2, -self.table.height() / 2);

# 인쇄
self.table.render(qp)

qp.end()
2 changes: 1 addition & 1 deletion test02.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import tkinter.messagebox as tmsg
from tkinter import *
import tkinter.filedialog as fdialog
from test01 import MyMainWindow
from Mainwindow import MyMainWindow
import sys
from PyQt5.QtWidgets import *

Expand Down
32 changes: 0 additions & 32 deletions test03.py

This file was deleted.