PyQt: Difference between revisions

From Virtujoy Documentation
No edit summary
mNo edit summary
 
Line 59: Line 59:
=== Open file dialog ===
=== Open file dialog ===


<syntaxhighlight lang="en" line>
<syntaxhighlight lang="python" line>
from PyQt5.QtWidgets import QAction, QApplication, QFileDialog, QMainWindow, QMessageBox, QPlainTextEdit
from PyQt5.QtWidgets import QAction, QApplication, QFileDialog, QMainWindow, QMessageBox, QPlainTextEdit
from PyQt5.QtGui import QIcon
from PyQt5.QtGui import QIcon

Latest revision as of 16:12, 20 October 2025


Rudimentary text editor

Basic

from PyQt5.QtWidgets import QApplication, QLabel, QMessageBox, QPushButton, QVBoxLayout, QWidget


def on_button_click():
    alert = QMessageBox()
    alert.setText("You've clicked this button!")
    alert.exec()


app = QApplication([])
root = QWidget()
layout = QVBoxLayout()

label = QLabel("Test")
layout.addWidget(label)

button = QPushButton("Click me!")
button.clicked.connect(on_button_click)
layout.addWidget(button)

root.setLayout(layout)
root.show()
app.exec()


Simple menu

from PyQt5.QtWidgets import QAction, QApplication, QMainWindow, QPlainTextEdit, QVBoxLayout, QWidget


app = QApplication([])
app.setApplicationName("Text Editor")

text_edit = QPlainTextEdit()
window = QMainWindow()
window.setWindowTitle("Text Editor")
window.setCentralWidget(text_edit)

menu = window.menuBar().addMenu("&File")
close = QAction("&Close")
close.triggered.connect(window.close)
menu.addAction(close)

window.show()
app.exec()


Open file dialog

from PyQt5.QtWidgets import QAction, QApplication, QFileDialog, QMainWindow, QMessageBox, QPlainTextEdit
from PyQt5.QtGui import QIcon


app = QApplication([])
app.setApplicationName("Text Editor")

text_edit = QPlainTextEdit()
window = QMainWindow()
window.setWindowTitle("Text Editor")
window.setCentralWidget(text_edit)
window.setWindowIcon(QIcon("icon.svg"))
window.setMinimumSize(500, 400)

file_menu = window.menuBar().addMenu("&File")
close_action = QAction("&Close")
close_action.triggered.connect(window.close)
file_menu.addAction(close_action)

open_action = QAction("&Open")
def open_file():
    path = QFileDialog.getOpenFileName(window, "Open")[0]
    if path:
        text_edit.setPlainText(open(path).read())
open_action.triggered.connect(open_file)
file_menu.addAction(open_action)

help_menu = window.menuBar().addMenu("&Help")
about_action = QAction("&About")
help_menu.addAction(about_action)
def show_about_dialog():
    text =  "<center>" \
            "<h1>Text Editor</h1>" \
            "&#8291;" \
            "<p>Version 1.0.0 <br>" \
            "&copy; 2025 Timothy Tan</p>" \
            "</center>"
    QMessageBox.about(window, "About Text Editor", text)
about_action.triggered.connect(show_about_dialog)


window.show()
app.exec()