سؤال

أنا أحاول إخفاء المحطة عندما كنت إطلاق واجهة المستخدم الرسومية Tkinter القائمة على التطبيق ولكن عند النقر المزدوج على app.py الملف على OSX ، يظهر إطار المحطة الطرفية.لقد حاولت تغيير امتداد .pyw وحاولت إطلاق ذلك مع /usr/bin/pythonw, لكن مهما نافذة المحطة لا تزال تظهر.

حتى لقد حاولت إضافة حاول/باستثناء أدناه ، ولكن عند تشغيلها تظهر لي رسالة خطأ:'أمر غير صالح اسم "وحدة التحكم"' في محطة النافذة التي تظهر.

from Tkinter import *

class MainWindow(Tk):
    def __init__(self):
        Tk.__init__(self)
        try:
            self.tk.call('console', 'hide')
        except TclError, err:
           print err

win = MainWindow()
win.mainloop()

لم أكن قادرة على العثور على أي وسيلة لإخفاء نافذة الطرفية من الظهور.هل لديكم أي فكرة ؟

هل كانت مفيدة؟

المحلول

عن طريق النقر المزدوج فوق .py الملف على OS X, أنت من المحتمل إطلاق الثعبان واجهة المستخدم الرسومية سبيل المثال عن طريق Python Launcher.app الموردة مع OS X الثعابين.يمكنك التحقق من ذلك عن طريق اختيار .py الملف في الباحث والقيام Get Info على ذلك.بيثون قاذفة هو بسيط جدا-التفكير التطبيق الذي يبدأ الثعبان عن طريق المحطة.التطبيق الأوامر.إلى إطلاق مباشرة بيثون الخاصة بك واجهة المستخدم الرسومية التطبيق المفضل هو إنشاء التطبيق بسيطة باستخدام py2app.هناك البرنامج التعليمي وجيزة هنا.

تحرير:

هناك طرق أخرى بالطبع ، ولكن على الأرجح أي منهم سيتم إضافة المزيد من المستويات من المراوغة.لجعل العادي قاذفة "مزدوجة-قابل للنقر" التطبيق تحتاج إلى نوع من التطبيق هيكل.هذا ما py2app يتيح لك إنشاء مباشرة.

بسيط جدا في التفكير البديل هو الاستفادة من AppleScript Editor هو القدرة على إنشاء قاذفة التطبيق.في AppleScript المحرر:

  • /Applications/Utilities/AppleScript Editor.app في OS X 10.6

  • /Applications/AppleScript/Script Editor.app في 10.5

جعل سيناريو جديد مشابه لهذا:

do shell script "/path/to/python /path/to/script.py &> /dev/null &"

ثم Save As.. مع File Format -> Application.ثم سيكون لديك مزدوجة-قابل للنقر التطبيق سوف إطلاق تطبيق آخر.يمكنك خلق شيء مماثل مع أبل Automater.app.ولكن تحت الأغطية ، يفعلون شيئا مشابها لما py2app لا بالنسبة لك, فقط مع المزيد من الطبقات الأعلى.

نصائح أخرى

وإضافة إلى الإجابة عن طريق نيد Deily، والتراسل الفوري حالتي عندما حاولت تشغيل التطبيق بيثون باستخدام تطبيق ابليسكريبت، فإنه لم ينجح في البداية. اكتشفت أن لديها ما لمع بعض نوع من ترميز خطأ (أستخدمه UTF-8 وكنت قد شعرت في الماضي ضرورة تكوين لUTF-8).

وهكذا، بعد إجراء مزيد من التحقيق، اكتشفت أنني يمكن تحقيق ذلك عن طريق إنشاء تطبيق ابليسكريبت مع التعليمات البرمجية التالية (تعديل مسارات python3 وتطبيق بيثون حسب الحاجة):

وdo shell script "export LC_ALL=en_US.UTF-8; export LANG=en_US.UTF-8; /usr/local/bin/python3 '/Users/USER/FOLDER/SCRIPT.py' &> /dev/null &"

ووتطلق تطبيق بيثون دون أي نوافذ المحطة الطرفية. ويمكن بعد ذلك شخصية تطبيق ابليسكريبت مع رمز مخصص كالمعتاد، ويمكن وضعها في قفص الاتهام. عند النقر عليها، انها ستطلق intepreter بيثون، الذي لا يزال يظهر في قفص الاتهام، ولكن مع عدم وجود نوافذ مرئية.

وأعتقد أن هذا قد يكون من المفيد للمستخدمين الآخرين.

'اخفاء وحدة التحكم "لا يخفي محطة في OS X. انه يخفي تاكا الذي بني في وحدة التحكم، الذي هو في الحقيقة من بقايا أيام ماك كلاسيكي (والتي لا تزال تستخدم عادة على ويندوز).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top