小编Lix*_*xas的帖子

如何将所有资源编译成一个可执行文件?

我用python编写了GTK应用程序.

所有图形用户界面都在glade文件中,并且使用了一些图像.我希望将我的应用程序编译为EXEcutable文件.为此,我正在使用PyInstaller编译器和UPX 打包器.

我按照手册说的做了:

python Configure.py
python Makespec.py --onefile --windowed --upx /path/to/yourscript.py
python Build.py /path/to/yourscript.spec
Run Code Online (Sandbox Code Playgroud)

PyInstaller完美地工作并创建一个exe文件.但为了使我的应用程序正常工作,我必须将我的glade图像文件复制到exe的文件夹中.

有没有办法将这些文件编译成可执行文件?

我已经以各种方式编辑了我的spec文件,但我无法实现我想要的.下面的Spec文件只将文件复制到目录,但不编译成可执行文件

# -*- mode: python -*-
a = Analysis([os.path.join(HOMEPATH,'support\\_mountzlib.py'), os.path.join(HOMEPATH,'support\\useUnicode.py'), 'r:\\connection\\main.py'],
             pathex=['C:\\Documents and Settings\\Lixas\\Desktop\\pyinstaller-1.5-rc1'])

pyz = PYZ(a.pure)

exe = EXE( pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          name=os.path.join('dist', 'NetworkChecker.exe'),
          debug=False,
          strip=False,
          upx=True,
          console=False,
          icon='r:\\connection\\ikona.ico'        )

coll = COLLECT(
    exe,
    [('gui.glade', 'r:\\connection\\gui.glade', 'DATA')],
    [('question16.png', 'r:\\connection\\question16.png', 'DATA')],
#   a.binaries,
#   strip=False,
    upx=True,
    name='distFinal')
Run Code Online (Sandbox Code Playgroud)

我希望只有一个包含所有内容的可执行文件

python compiler-construction pygtk glade pyinstaller

5
推荐指数
2
解决办法
1万
查看次数

子菜单项不调用函数[有工作解决方案]

    #submenu
    clearMenu = gtk.Menu()

    item = gtk.MenuItem("submenu item")
    item.connect("activate", lambda w: self.callBackFunction())
    clearMenu.append(item)
    item.show()


    '''TOP level'''
    menu = gtk.Menu()

    item = gtk.ImageMenuItem("Item1")
    img = gtk.Image()
    img.set_from_file('image1.png')
    item.set_image(img)
    menu.append(item)
    item.set_submenu(clearMenu) #attach submenu
    item.show()

    item = gtk.ImageMenuItem("Item2")
    img = gtk.Image()
    img.set_from_file('image2.png')
    item.set_image(img)   
    item.connect("activate", lambda w: self.callBackFunction())
    menu.append(item)
    item.show()
Run Code Online (Sandbox Code Playgroud)

我的顶级项"Item2"调用定义的函数"callBackFunction".但为什么"子菜单项" ?我做错了什么?


编辑

这是我如何设法强制子菜单项启动所需的操作:

item.connect("button-press-event", self.callBackFunction, argument1, argument2)
Run Code Online (Sandbox Code Playgroud)

但我仍然不明白为什么事件"激活"不适用于子菜单项,而在顶级菜单项中工作

python pygtk contextmenu menu

4
推荐指数
1
解决办法
1150
查看次数

最高数量的"杀戮除以死亡"的SQL顺序

我有一张桌子:
ID | KILLS | DEATHS
$ratio = $kills / $deaths;

如何订购字段,以便以最高比率回显ID?

mysql sql sql-order-by

0
推荐指数
1
解决办法
546
查看次数