Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 17, 2023 19:13:48

Genabox
Зарегистрирован: 2022-12-24
Сообщения: 198
Репутация: +  1  -
Профиль   Отправить e-mail  

сборка программы подскажите новенькому

привет
я написал все необходимые мне модули для программы
дискортбот
обработка sql
режим возле часов

все по разным модулям разбито
что мне писать в файле главном __init__.py
потому что при импорте выполняется только 1 модуль а остальные весят

 import discord_bot
import sound_to_text_work
import tray 
if __name__ == '__main__': 
   
    sound_to_text_work.main()
    discord_bot.main()
    tray.icon.run()

Офлайн

#2 Янв. 17, 2023 22:01:21

Genabox
Зарегистрирован: 2022-12-24
Сообщения: 198
Репутация: +  1  -
Профиль   Отправить e-mail  

сборка программы подскажите новенькому

tray

 from PySide2.QtGui import QIcon
from PySide2.QtWidgets import QApplication, QSystemTrayIcon, QMenu, QAction
 
app = QApplication([])
app.setQuitOnLastWindowClosed(False)
# Create the icon
icon = QIcon("images/icon.png")
# Create the tray
tray = QSystemTrayIcon()
tray.setIcon(icon)
tray.setVisible(True)
# Create the menu
menu = QMenu()
action = QAction("A menu item")
menu.addAction(action)
# Add a Quit option to the menu.
quit = QAction("Quit")
quit.triggered.connect(app.quit)
menu.addAction(quit)
# Add the menu to the tray
tray.setContextMenu(menu)
app.exec_()

почему этот код блокирует остальное преложение?

Офлайн

#3 Янв. 17, 2023 22:17:01

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10022
Репутация: +  857  -
Профиль   Отправить e-mail  

сборка программы подскажите новенькому

Genabox
что мне писать в файле главном __init__.py
Да ничего в них не пишется обычно. Они нужны только для того, чтобы обслуживать пакет (инициализировать что-то в пакете самом, заготавливать имена, делать удобные импорты). Программа у тебя должна выполняться из основного скрипта.



Отредактировано py.user.next (Янв. 17, 2023 22:17:38)

Офлайн

#4 Янв. 17, 2023 22:26:52

Genabox
Зарегистрирован: 2022-12-24
Сообщения: 198
Репутация: +  1  -
Профиль   Отправить e-mail  

сборка программы подскажите новенькому

 import pystray
from PIL import Image
import sys
import threading
import discord_bot
import sound_to_text_work
from tray import trays 
def main():
    threadICO = threading.Thread(target=trays) 
    threadICO.start() 
    threadVIUCE  = threading.Thread(target=sound_to_text_work.main) 
    threadVIUCE.start() 
if __name__ == '__main__': 
   
    #sound_to_text_work.main()
    #discord_bot.main()
    main()
 
тут разобрался
почему модуль у часов при выходе не закрывает программу а закрывается сам - не понятно

Офлайн

#5 Янв. 17, 2023 22:27:53

Genabox
Зарегистрирован: 2022-12-24
Сообщения: 198
Репутация: +  1  -
Профиль   Отправить e-mail  

сборка программы подскажите новенькому

это и есть основной скрипт или его по другому назвать?

>>>
а я понял а как этот скрипт должен называтся?

Отредактировано Genabox (Янв. 17, 2023 22:34:27)

Офлайн

#6 Янв. 17, 2023 22:37:40

Genabox
Зарегистрирован: 2022-12-24
Сообщения: 198
Репутация: +  1  -
Профиль   Отправить e-mail  

сборка программы подскажите новенькому

 from PySide2.QtGui import QIcon
from PySide2.QtWidgets import QApplication, QSystemTrayIcon, QMenu, QAction
 
def trays():
    app = QApplication([])
    app.setQuitOnLastWindowClosed(False)
    # Create the icon
    icon = QIcon("images/icon.png")
    # Create the tray
    tray = QSystemTrayIcon()
    tray.setIcon(icon)
    tray.setVisible(True)
    # Create the menu
    menu = QMenu()
    action = QAction("A menu item")
    menu.addAction(action)
    # Add a Quit option to the menu.
    quit = QAction("Quit")
    quit.triggered.connect(app.quit)
    menu.addAction(quit)
    # Add the menu to the tray
    tray.setContextMenu(menu)
    app.exec_()

как отсуда закрыть работу всей программы? если это модуль, и при выходе он сам просто закрывается а приложение продолжает работать

Отредактировано Genabox (Янв. 17, 2023 22:47:27)

Офлайн

#7 Янв. 17, 2023 23:01:18

Genabox
Зарегистрирован: 2022-12-24
Сообщения: 198
Репутация: +  1  -
Профиль   Отправить e-mail  

сборка программы подскажите новенькому

даже лучше так

 import pystray
from PIL import Image
import sys
#sys.path.insert(2, sys.path[0]+'\\images')
image = Image.open("images\icon.png")
 
def trays():
    def after_click(icon, query):
        if str(query) == "GeeksforGeeks Website":
            print("The Best Place to learn anything Tech \
        Related -> https://www.geeksforgeeks.org/")
            # icon.stop()
        elif str(query) == "GeeksforGeeks Youtube":
            print("Youtube Channel of GeeksforGeeks \
        is -> https://www.youtube.com/@GeeksforGeeksVideos")
            # icon.stop()
        elif str(query) == "GeeksforGeeks LinkedIn":
            print("LinkedIn of GeeksforGeeks \
        is -> https://www.linkedin.com/company/geeksforgeeks/")
        elif str(query) == "testt":
            print("test")
        elif str(query) == "Exit":
            icon.stop()
    icon = pystray.Icon("GFG", image, "GeeksforGeeks",
                        menu=pystray.Menu(
        pystray.MenuItem("GeeksforGeeks Website",
                        after_click),
        pystray.MenuItem("GeeksforGeeks Youtube",
                        after_click),
        pystray.MenuItem("GeeksforGeeks Youtube",
                        after_click),
        pystray.MenuItem("GeeksforGeeks LinkedIn",
                        after_click),
        pystray.MenuItem("testt",
                        after_click),
        pystray.MenuItem("Exit", after_click)))
    icon.run()

блокировать перестало УХХХХ
как отсуда грохнуть все приложение?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version