PyQt: Difference between revisions
From Virtujoy Documentation
Created page with "== Basic == <syntaxhighlight lang="python" line> 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..." |
No edit summary |
||
| Line 1: | Line 1: | ||
== Basic == | __TOC__ | ||
== Rudimentary text editor == | |||
=== Basic === | |||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line> | ||
| Line 28: | Line 33: | ||
== Simple menu == | === Simple menu === | ||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line> | ||
| Line 46: | Line 51: | ||
close.triggered.connect(window.close) | close.triggered.connect(window.close) | ||
menu.addAction(close) | menu.addAction(close) | ||
window.show() | |||
app.exec() | |||
</syntaxhighlight> | |||
=== Open file dialog === | |||
<syntaxhighlight lang="en" line> | |||
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>" \ | |||
"⁣" \ | |||
"<p>Version 1.0.0 <br>" \ | |||
"© 2025 Timothy Tan</p>" \ | |||
"</center>" | |||
QMessageBox.about(window, "About Text Editor", text) | |||
about_action.triggered.connect(show_about_dialog) | |||
window.show() | window.show() | ||
app.exec() | app.exec() | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Revision as of 16:11, 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>" \
"⁣" \
"<p>Version 1.0.0 <br>" \
"© 2025 Timothy Tan</p>" \
"</center>"
QMessageBox.about(window, "About Text Editor", text)
about_action.triggered.connect(show_about_dialog)
window.show()
app.exec()