Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- from sys import argv
- from typing import Self
- from PySide6.QtWidgets import (
- QApplication,
- QComboBox,
- QLabel,
- QLineEdit,
- QVBoxLayout,
- QWidget,
- )
- class MainWindow(QWidget):
- def __init__(self: Self) -> None:
- super().__init__()
- self.messages = {
- "chat_1": [],
- "chat_2": [],
- "chat_3": [],
- }
- self.chat_selection = QComboBox()
- self.chat_selection.addItems(tuple(self.messages.keys()))
- self.chat_selection.currentTextChanged.connect(self.select_chat)
- self.messages_layout = QVBoxLayout()
- self.message_input = QLineEdit()
- self.message_input.returnPressed.connect(self.send_message)
- layout = QVBoxLayout()
- layout.addWidget(self.chat_selection)
- layout.addLayout(self.messages_layout)
- layout.addWidget(self.message_input)
- self.setLayout(layout)
- def select_chat(self: Self) -> None:
- chat_name = self.chat_selection.currentText()
- for i in reversed(range(self.messages_layout.count())):
- widget = self.messages_layout.itemAt(i).widget()
- self.messages_layout.removeWidget(widget)
- widget.deleteLater()
- for message in self.messages[chat_name]:
- self.messages_layout.addWidget(QLabel(message))
- def send_message(self: Self) -> None:
- message = self.message_input.text()
- if message == "":
- return
- self.message_input.clear()
- chat_name = self.chat_selection.currentText()
- self.messages[chat_name].append(message)
- self.messages_layout.addWidget(QLabel(message))
- def main() -> int:
- application = QApplication(argv)
- main_window = MainWindow()
- main_window.show()
- return application.exec()
- if __name__ == "__main__":
- sys.exit(main())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement