كيف يمكنني إخفاء نافذة وحدة التحكم عند تجميد تطبيقات Wxpython مع Cxfreeze؟

StackOverflow https://stackoverflow.com/questions/2880316

  •  04-10-2019
  •  | 
  •  

سؤال

أقوم بتطوير تطبيق Python باستخدام Wxpython وتجميده باستخدام Cxfreeze. يبدو أن كل شيء يسير على ما يرام عن هذا الشيء التالي:

عندما أقوم بتشغيل القابل للتنفيذ الذي تم إنشاؤه بواسطة CXFREEZE ، تظهر نافذة وحدة التحكم الفارغة. لا أريد أن أريها. هل هناك أي طريقة يمكنني إخفائها؟

لا يبدو أنه موثق على موقع Cxfreeze ولم يظهر Googling بعيدًا عن بعض المشكلات المشابهة لـ Py2exe.

شكرًا.

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

المحلول

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

رمز المصدر التالي يأتي من ملف عينة في \Python\Lib\site-packages\cx_Freeze\samples\PyQt4\setup.py. درس اليوم. اقرأ ReadMe.

# A simple setup script to create an executable using PyQt4. This also
# demonstrates the method for creating a Windows executable that does not have
# an associated console.
#
# PyQt4app.py is a very simple type of PyQt4 application
#
# Run the build process by running the command 'python setup.py build'
#
# If everything works well you should find a subdirectory in the build
# subdirectory that contains the files needed to run the application

import sys

from cx_Freeze import setup, Executable

base = None
if sys.platform == "win32":
    base = "Win32GUI"

setup(
        name = "simple_PyQt4",
        version = "0.1",
        description = "Sample cx_Freeze PyQt4 script",
        executables = [Executable("PyQt4app.py", base = base)])

نصائح أخرى

للنوافذ:

يجب عليك استخدام سطر مثل هذا (استخدم مجلدات الملفات والأسماء حسب الاقتضاء)

C:/Python/Scripts/cxfreeze C:/Python/Code/yourprogram.py --base-name=Win32GUI --target-dir C:/Python/Dist

عن طريق إضافة --base-name=Win32GUI الخيار ، لن تظهر نافذة وحدة التحكم.

إذا كنت تستخدم Windows ، فيمكنك إعادة تسمية ملحق البرنامج النصي "الرئيسي" (الذي يطلق التطبيق) إلى .pyw

الخيار 1) استخدام GUI2EXE لتوطيف مع خيارات مختلفة.

الخيار 2) تعديل setup.py مع المعلمة "قاعدة" على هذا النحو.

GUI2Exe_Target_1 = Executable(
    # what to build
    script = "rf_spi.py",
    initScript = None,
    base = 'Win32GUI',  # <-- add this
    targetDir = r"dist",
    targetName = "rf_spi.exe",
    compress = True,
    copyDependentFiles = False,
    appendScriptToExe = False,
    appendScriptToLibrary = False,
    icon = r"wireless.ico"
    )
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top