Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QVBoxLayout, QWidget, QTextEdit, QPushButton
- from PyQt5.QtGui import QFont
- from PyQt5.QtCore import Qt
- class MainWindow(QMainWindow):
- def __init__(self):
- super().__init__()
- self.setWindowTitle("Gerador de texto em HTML")
- self.setGeometry(100, 100, 640, 800) # Define a posição e o tamanho da janela
- # Criação dos widgets
- label_titulo = QLabel("Título")
- label_titulo.setFont(QFont("Arial", 16, QFont.Bold)) # Define a fonte e o tamanho da fonte da label "Título"
- self.caixa_titulo = QTextEdit()
- self.caixa_titulo.setFont(QFont("Arial", 14)) # Define a fonte e o tamanho da fonte da caixa de texto do título
- self.caixa_titulo.setFixedHeight(40) # Define a altura desejada para a área de texto do título
- self.caixa_titulo.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff) # Remove a barra de rolagem vertical
- label_texto = QLabel("Texto")
- label_texto.setFont(QFont("Arial", 16, QFont.Bold)) # Define a fonte e o tamanho da fonte da label "Texto"
- self.caixa_texto = QTextEdit()
- self.caixa_texto.setFont(QFont("Arial", 14)) # Define a fonte e o tamanho da fonte da caixa de texto do texto
- botao_gerar = QPushButton("Gerar")
- botao_gerar.clicked.connect(self.gerar_registro)
- botao_gerar.setFixedHeight(50) # Define a altura desejada para o botão "Gerar"
- botao_gerar.setFont(QFont("Arial", 18)) # Define a fonte e o tamanho da fonte do botão "Gerar"
- # Layout
- layout = QVBoxLayout()
- layout.addWidget(label_titulo)
- layout.addWidget(self.caixa_titulo)
- layout.addWidget(label_texto)
- layout.addWidget(self.caixa_texto)
- layout.addWidget(botao_gerar)
- # Widget principal
- widget = QWidget()
- widget.setLayout(layout)
- self.setCentralWidget(widget)
- # Centraliza a janela na tela
- screen_geometry = QApplication.desktop().screenGeometry()
- x = (screen_geometry.width() - self.width()) // 2
- y = (screen_geometry.height() - self.height()) // 2
- self.move(x, y)
- def gerar_registro(self):
- titulo = self.caixa_titulo.toPlainText()
- texto = self.caixa_texto.toPlainText()
- # Substitui quebras de linha por tags <p> e </p>
- texto_formatado = "<p>" + texto.replace("\n", "</p><p>") + "</p>"
- # Registro HTML
- registro_html = f'''
- <!DOCTYPE html>
- <html lang="pt-br">
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
- <title>Documento</title>
- </head>
- <body>
- <div class="container">
- <h1>{titulo}</h1>
- {texto_formatado}
- <hr>
- </div>
- <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
- </body>
- </html>
- '''
- # Adiciona o registro ao arquivo HTML
- with open('output.html', 'a', encoding='utf-8') as arquivo:
- arquivo.write(registro_html)
- # Exemplo: exibir o registro HTML no console
- print(registro_html)
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- window = MainWindow()
- window.show()
- sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement