Added Status bar, menu bar, and made context menu blue.
This commit is contained in:
98
Experiments/gui_elements.py
Normal file
98
Experiments/gui_elements.py
Normal file
@ -0,0 +1,98 @@
|
||||
# example_qt_interface.py
|
||||
import sys
|
||||
from PySide6.QtCore import Qt
|
||||
from PySide6.QtGui import QAction, QIcon
|
||||
from PySide6.QtWidgets import (
|
||||
QApplication, QMainWindow, QWidget, QVBoxLayout,
|
||||
QLabel, QMenuBar, QToolBar, QSplitter, QListWidget,
|
||||
QTextEdit, QStatusBar, QFileDialog, QPushButton
|
||||
)
|
||||
|
||||
|
||||
class MainWindow(QMainWindow):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
|
||||
self.setWindowTitle("Example Qt Interface")
|
||||
|
||||
# Create and set up the menu bar.
|
||||
menu_bar = QMenuBar(self)
|
||||
self.setMenuBar(menu_bar)
|
||||
|
||||
# File menu.
|
||||
file_menu = menu_bar.addMenu("File")
|
||||
|
||||
# Create some actions to populate the File menu.
|
||||
open_action = QAction("Open", self)
|
||||
open_action.triggered.connect(self.open_file)
|
||||
file_menu.addAction(open_action)
|
||||
|
||||
save_action = QAction("Save", self)
|
||||
save_action.triggered.connect(self.save_file)
|
||||
file_menu.addAction(save_action)
|
||||
|
||||
exit_action = QAction("Exit", self)
|
||||
exit_action.triggered.connect(self.close)
|
||||
file_menu.addAction(exit_action)
|
||||
|
||||
# Create a toolbar and add some actions.
|
||||
tool_bar = QToolBar("Main Toolbar", self)
|
||||
tool_bar.addAction(open_action)
|
||||
tool_bar.addAction(save_action)
|
||||
self.addToolBar(Qt.TopToolBarArea, tool_bar)
|
||||
|
||||
# Set up a status bar at the bottom.
|
||||
self.setStatusBar(QStatusBar(self))
|
||||
self.statusBar().showMessage("Ready")
|
||||
|
||||
# Create your central widget area.
|
||||
central_widget = QWidget()
|
||||
self.setCentralWidget(central_widget)
|
||||
layout = QVBoxLayout(central_widget)
|
||||
|
||||
# A splitter as an example container that can hold multiple widgets side-by-side.
|
||||
splitter = QSplitter()
|
||||
|
||||
# Left side: a simple list widget.
|
||||
self.list_widget = QListWidget()
|
||||
self.list_widget.addItem("Item A")
|
||||
self.list_widget.addItem("Item B")
|
||||
self.list_widget.addItem("Item C")
|
||||
splitter.addWidget(self.list_widget)
|
||||
|
||||
# Right side: a text edit widget.
|
||||
self.text_edit = QTextEdit()
|
||||
self.text_edit.setPlainText("Type here...")
|
||||
splitter.addWidget(self.text_edit)
|
||||
|
||||
layout.addWidget(splitter)
|
||||
|
||||
# Example button in the central widget area.
|
||||
example_button = QPushButton("Click Me")
|
||||
example_button.clicked.connect(self.on_button_clicked)
|
||||
layout.addWidget(example_button)
|
||||
|
||||
def open_file(self):
|
||||
file_name, _ = QFileDialog.getOpenFileName(self, "Open File", "", "All Files (*.*)")
|
||||
if file_name:
|
||||
self.statusBar().showMessage(f"Opened: {file_name}")
|
||||
|
||||
def save_file(self):
|
||||
file_name, _ = QFileDialog.getSaveFileName(self, "Save File", "", "All Files (*.*)")
|
||||
if file_name:
|
||||
self.statusBar().showMessage(f"Saved: {file_name}")
|
||||
|
||||
def on_button_clicked(self):
|
||||
self.statusBar().showMessage("Button clicked!")
|
||||
|
||||
|
||||
def main():
|
||||
app = QApplication(sys.argv)
|
||||
window = MainWindow()
|
||||
window.resize(800, 600)
|
||||
window.show()
|
||||
sys.exit(app.exec())
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Reference in New Issue
Block a user