Natalie/gui/portainer_ui.py
2024-11-24 10:28:21 +03:30

68 lines
2.1 KiB
Python

import sys
from PyQt6.QtWidgets import (QApplication, QMainWindow, QWidget,
QVBoxLayout, QHBoxLayout,
QLabel, QLineEdit, QListWidget,
QTableWidget, QHeaderView, QPushButton, QComboBox)
class PortainerUi:
def __init__(self):
self.main_window = QMainWindow()
self.main_window.show()
self.main_window.setWindowTitle("Natalie")
self.search_box = QLineEdit()
self.combo_box = QComboBox()
search_layout = QHBoxLayout()
search_layout.addWidget(self.search_box)
search_layout.addWidget(self.combo_box)
self.stacks_list = QListWidget()
self.stack_title = QLabel()
self.containers_table = QTableWidget()
self.containers_table.setColumnCount(3)
self.containers_table.setHorizontalHeaderLabels(["ID", "Name", "Status"])
self.containers_table.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeMode.ResizeToContents)
self.containers_table.horizontalHeader().setStretchLastSection(True)
self.start = QPushButton("Start")
self.stop = QPushButton("Stop")
self.update = QPushButton("Update")
buttons_layout = QHBoxLayout()
buttons_layout.addWidget(self.start)
buttons_layout.addWidget(self.stop)
buttons_layout.addWidget(self.update)
info_layout = QVBoxLayout()
info_layout.addWidget(self.stack_title)
info_layout.addLayout(buttons_layout)
info_layout.addWidget(self.containers_table)
main_layout = QHBoxLayout()
main_layout.addWidget(self.stacks_list)
main_layout.addLayout(info_layout)
main_layout.setStretch(0, 1)
main_layout.setStretch(1, 2)
layout = QVBoxLayout()
layout.addLayout(search_layout)
layout.addLayout(main_layout)
widget = QWidget()
widget.setLayout(layout)
self.main_window.setCentralWidget(widget)
def show(self):
self.main_window.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
win = PortainerUi()
win.show()
sys.exit(app.exec())