{"id":17603027,"url":"https://github.com/yjg30737/pyqt-chat-widget","last_synced_at":"2025-05-07T11:14:46.398Z","repository":{"id":65696328,"uuid":"597578055","full_name":"yjg30737/pyqt-chat-widget","owner":"yjg30737","description":"PyQt widget for chatting app","archived":false,"fork":false,"pushed_at":"2023-02-05T06:44:25.000Z","size":23,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-07T11:14:03.996Z","etag":null,"topics":["chat-gui","pyqt","pyqt-chat","pyqt-gui","pyqt5","pyqt5-examples","pyqt5-gui","pyqt5-tutorial","qt"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yjg30737.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-02-05T00:34:32.000Z","updated_at":"2025-02-27T01:24:01.000Z","dependencies_parsed_at":"2023-02-18T20:31:11.606Z","dependency_job_id":null,"html_url":"https://github.com/yjg30737/pyqt-chat-widget","commit_stats":{"total_commits":16,"total_committers":1,"mean_commits":16.0,"dds":0.0,"last_synced_commit":"ed65fc8d01abb03df7291ed65556ba4e1533ddbf"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yjg30737%2Fpyqt-chat-widget","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yjg30737%2Fpyqt-chat-widget/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yjg30737%2Fpyqt-chat-widget/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yjg30737%2Fpyqt-chat-widget/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yjg30737","download_url":"https://codeload.github.com/yjg30737/pyqt-chat-widget/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252865730,"owners_count":21816309,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chat-gui","pyqt","pyqt-chat","pyqt-gui","pyqt5","pyqt5-examples","pyqt5-gui","pyqt5-tutorial","qt"],"created_at":"2024-10-22T13:37:41.047Z","updated_at":"2025-05-07T11:14:46.345Z","avatar_url":"https://github.com/yjg30737.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pyqt-chat-widget\nPyQt widget for chatting app\n\n## Requirements\n* PyQt5\n\n## How to Install\n### By Cloning\n1. git clone ~\n2. python sample.py\n### By pip\n* python -m pip install pyqt-chat-widget\n\n## Detailed Description\nThis is very basic chat widget which looks like this\n\n![image](https://user-images.githubusercontent.com/55078043/216797180-84841611-7d57-42e2-9b1c-8219657859c8.png)\n\nIf you want to change the style of widgets, check out `ChatBrowser`, `Prompt` class in \"chatWidget.py\".\n\n### How to Use\nAfter writing the text in the input, press the enter key to submit your text. It will show up on the chat browser.\n\nIf you want to write the multi-line text, press shift+enter(=return).\n\n## Code Sample (for installing the package with pip)\n\n```python\nfrom PyQt5.QtCore import Qt, QCoreApplication\nfrom PyQt5.QtGui import QGuiApplication, QFont\nfrom PyQt5.QtWidgets import QMainWindow, QApplication, QVBoxLayout, QWidget\n\nfrom pyqt_chat_widget.chatWidget import Prompt, ChatBrowser\n\n# HighDPI support, for better quality overall\nQApplication.setAttribute(Qt.AA_EnableHighDpiScaling)\nQCoreApplication.setAttribute(Qt.AA_UseHighDpiPixmaps)\nQGuiApplication.setHighDpiScaleFactorRoundingPolicy(Qt.HighDpiScaleFactorRoundingPolicy.PassThrough)\n\nQApplication.setFont(QFont('Arial', 12))  # to be more visible\n\n\nclass MainWindow(QMainWindow):\n    def __init__(self):\n        super().__init__()\n        self.__initUi()\n\n    def __initUi(self):\n        self.setWindowTitle('PyQt Chat Widget Example')\n        self.__prompt = Prompt()\n        self.__textEdit = self.__prompt.getTextEdit()\n        self.__textEdit.setPlaceholderText('Write some text...')\n        self.__textEdit.returnPressed.connect(self.__chat)\n        self.__browser = ChatBrowser()\n        lay = QVBoxLayout()\n        lay.addWidget(self.__browser)\n        lay.addWidget(self.__prompt)\n        lay.setSpacing(0)\n        mainWidget = QWidget()\n        mainWidget.setLayout(lay)\n        self.setCentralWidget(mainWidget)\n        self.resize(600, 400)\n\n        self.__browser.showText('Hello!', True)\n        self.__browser.showText('Hello! How may i help you?', False)\n\n    def __chat(self):\n        self.__browser.showText(self.__textEdit.toPlainText(), True)\n        self.__browser.showText(f'You said \"{self.__textEdit.toPlainText()}\"', False)\n        self.__textEdit.clear()\n\n\nif __name__ == \"__main__\":\n    import sys\n\n    app = QApplication(sys.argv)\n    w = MainWindow()\n    w.show()\n    app.exec()\n```\n\n## TODO list\n* show the profile icon\n* support emoji\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyjg30737%2Fpyqt-chat-widget","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyjg30737%2Fpyqt-chat-widget","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyjg30737%2Fpyqt-chat-widget/lists"}