我想使用 wxPython 在屏幕顶部的 OSX 菜单栏中添加一个图标。我尝试过 wx.TaskBarIcon,它在 Windows 中添加了一个系统托盘图标,但这不起作用 - 它改为更改应用程序的 Dock 图标。有谁知道如何做到这一点?
我正在编写一个小型的跨平台wxPython应用程序,但是在每个平台上我都需要使用一些特定于平台的API.在Mac OS上,可以使用PyObjC完成.
我正在寻找有关如何使用PyObjC的教程.但是,到目前为止我发现的只是Xcode的教程.我希望我的应用程序能够在mac/win/lin上运行,无需更改,我不想在Xcode中开发它.有办法吗?
UPD.更具体地说,我需要从Mac OS X访问一些笔平板电脑事件,我想使用PyObjC(我没有看到任何其他方式).
我有一个wx.ListCtrl有wx.LC_REPORT位设置.它有3列.我希望第一列填充每个其他条目的复选框.我尝试使用该ListCtrl.InsertItem方法,但它只需要一个参数(info),我找不到任何关于该参数需要的文档.我已经试过路过一家wx.CheckBox以InsertItem无济于事.
是否可以将复选框作为wxPython ListCtrl中的条目?如果是这样,我将如何做到这一点?
如果对于我正在谈论的内容有任何歧义,这里是我想要的图片(不确定这是否是wx,但它是我正在寻找的).我想要在No.列中的1..5旁边的复选框.

我的朋友写了一个应用程序C,它带有一个GTK在Linux下使用的GUI .现在我们要在python(wxpython或PyQT)中重写GUI .
我没有使用Python的经验,也不知道如何让Python与C进行通信.我想知道这是否可行,如果可以,我该如何实现呢?
我是编程的新手,也是python的新手.我刚开发了我的第一个脚本,它是prosesses文件,但目前只是从命令行开始.
这对我来说只是一个爱好,所以我的工作不依赖于它:-)
我花了几天时间试图了解python gui开发并得出结论我一定是傻瓜.
我看过wxpython和Tkinter并且也不明白,虽然Tkinter看起来更容易.我甚至看过像Boa Contrictor和wxglade这样的所见即所得的工具.我甚至不明白如何使用它们.无论如何,我更愿意手动使用我的编辑器和代码.
我的问题是:
我想创建一个带有1个或2个对象的桌面窗口,具体取决于最佳效果.如果只有一个对象,则为某种文本框,如果是2个对象,则为文本框和图像.
我希望能够从文件管理器中拖动文件并将其放在我的脚本窗口中,这只是将文件名传递给我的脚本.
我想将stdout重定向到桌面窗口中的对象,以便所有脚本输出都出现在桌面窗口中.
我不确定一个物体是否能做到这两件事.如果它可以只是一个文本框就足够了,否则将文件拖放到图像上并将重定向的输出转到文本框.
我在网上找到了拖放示例但没有包含stdout重定向的内容,而且我无法成功修改我遇到过的任何示例.
如果某种类型的鞋底有时间展示如何实现我想要的东西并解释它的工作原理我会非常感激!
----编辑----
我一直在玩2个例子,并设法将2个哈希,以便得到我想要的工作.代码如下.它尚未清理(旧评论等......),但它确实有效.
#!/usr/bin/python
# The next two lines are not necessary if you installed TkDnd
# in a proper place.
import os
from Tkinter import *
os.environ['TKDND_LIBRARY'] = '/home/clinton/Python/tkdnd2.6/'
import Tkinter
from untested_tkdnd_wrapper import TkDND
class Redir(object):
# This is what we're using for the redirect, it needs a text box
def __init__(self, textbox):
self.textbox = textbox
self.textbox.config(state=NORMAL)
self.fileno = sys.stdout.fileno
def write(self, message):
# When you …Run Code Online (Sandbox Code Playgroud) 假设我需要raw_input用wxPython对话框替换下面代码中的函数,该对话框要求用户输入并将值返回给程序:
...
x = raw_input("What's your name?")
print 'Your name was', x
...
Run Code Online (Sandbox Code Playgroud)
我只是在寻找一种简单的方法来做到这一点。谢谢
我正在使用python(wxPython for UI)在windows 7上开发一个软件,pyinstaller是我用来打包的工具。但最近将 pyinstaller 升级到 3.1.1 后,tcl/tk目录中开始出现文件夹。并且 pyinstaller 2.1 捆绑了完全相同的源代码,因此找不到这样的文件夹,这应该是这样,因为我从未在任何地方使用过 tcl/tk。
我已经尝试过a.datas -= TOC([('tcl', None, 'DATA'), ('tk', None, 'DATA')]),但它不起作用。tcl/tk那么打包时如何排除呢?
我在 mac 上安装了 anaconda 而不是系统的 python,但是当我输入时
import wx
app = wx.App()
Run Code Online (Sandbox Code Playgroud)
我懂了:
该程序需要访问屏幕。请使用 Python 的框架版本运行,并且仅当您在 Mac 的主显示屏上登录时才运行。
我使用脚本:
#!/bin/bash
# what real Python executable to use
PYVER=2.7
PYTHON=/Library/Frameworks/Python.framework/Versions/$PYVER/bin/python$PYVER
# find the root of the virtualenv, it should be the parent of the dir this script is in
ENV=`$PYTHON -c "import os; print os.path.abspath(os.path.join(os.path.dirname(\"$0\"), '..'))"`
# now run Python with the virtualenv set as Python's HOME
export PYTHONHOME=$ENV
exec $PYTHON "$@"
Run Code Online (Sandbox Code Playgroud)
但它只是使用系统python。不能在anaconda中使用lib。我想在anaconda中使用wx GUI,如何解决问题?
我正在尝试使用 pip3 在 ubuntu 16.04 上为 python3 安装 wxPython,但是在下载了要求后,它卡在了安装中。我已经安装了这里提到的所需的开发包及其依赖项。

我正在运行 Ubuntu 18.04.3 LTS,Python 3.6.9,wx.version: 4.0.7.post2 gtk3 (phoenix) wxWidgets 3.0.5
当我导入 wx.adv 时,出现错误
导入错误:libSDL2-2.0.so.0:无法打开共享对象文件:没有这样的文件或目录
如果我运行:
sudo apt-file search libSDL_image-1.2.so.0
Run Code Online (Sandbox Code Playgroud)
我得到:
libsdl-image1.2: /usr/lib/x86_64-linux-gnu/libSDL_image-1.2.so.0
libsdl-image1.2: /usr/lib/x86_64-linux-gnu/libSDL_image-1.2.so.0.8.4
Run Code Online (Sandbox Code Playgroud)
怎么了?
wxpython ×10
python ×9
macos ×3
tkinter ×2
anaconda ×1
c ×1
listctrl ×1
menubar ×1
pyinstaller ×1
pyobjc ×1
pyqt ×1
python-3.x ×1
raw-input ×1
stdout ×1
taskbar ×1
ubuntu ×1
ubuntu-18.04 ×1
user-input ×1