我正在编写一个小型的跨平台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旁边的复选框.

如何在Python缓冲区对象中对一组连续值进行快速重置?
主要是我正在寻找一个memset :)
PS.该解决方案应该与Python 2.5一起使用并修改缓冲区本身(无副本).
我正在使用wxPython来构建一个GUI,我正在尝试对齐一些文本,但它根本不起作用.我正尝试在三个单独的面板中将三个不同的静态文本项对齐(右对齐,中心对齐和左对齐).我得到的结果是,所有三个静态文本控件都在各自面板的左上角对齐.

这是我的代码:
self.lastText=wx.StaticText(self.textDisplayPanel1, label=self.lastWords, style=wx.ALIGN_RIGHT)
self.currentText=wx.StaticText(self.textDisplayPanel2, label=self.currentWords, style=wx.ALIGN_CENTRE)
self.nextText=wx.StaticText(self.textDisplayPanel3, label=self.nextWords, style=wx.ALIGN_LEFT)
Run Code Online (Sandbox Code Playgroud)
关于如何解决这个问题的任何想法?
谢谢!
我正在使用Python 2.7.1和wxPython 2.8.12.1运行mac OSX 10.7.2
我是Python和WX的新手.我创建了一个如下所示的简单测试对话框,提示用户使用组合框.我想从主程序中的combox中捕获值.我如何从我的主程序中调用它?
这就是我打算调用它来显示对话框但目前没有从组合框中捕获值的方法:
import highlight
highlight.create(self).Show(True)
a = highlight.OnComboBox1Combobox(self)
print a
Run Code Online (Sandbox Code Playgroud)
Dialog文件的名称是"highlight".以下是代码:
#Boa:Dialog:Dialog2
import wx
def create(parent):
return Dialog2(parent)
[wxID_DIALOG2, wxID_DIALOG2COMBOBOX1, wxID_DIALOG2STATICTEXT1,
] = [wx.NewId() for _init_ctrls in range(3)]
class Dialog2(wx.Dialog):
def _init_ctrls(self, prnt):
# generated method, don't edit
wx.Dialog.__init__(self, id=wxID_DIALOG2, name='', parent=prnt,
pos=wx.Point(264, 140), size=wx.Size(400, 485),
style=wx.DEFAULT_DIALOG_STYLE, title='Dialog2')
self.SetClientSize(wx.Size(384, 447))
self.comboBox1 = wx.ComboBox(choices=['test1', 'test2'],
id=wxID_DIALOG2COMBOBOX1, name='comboBox1', parent=self,
pos=wx.Point(120, 16), size=wx.Size(130, 21), style=0,
value=u'wining\n')
self.comboBox1.SetToolTipString(u'comboBox1')
self.comboBox1.SetLabel(u'wining\n')
self.comboBox1.Bind(wx.EVT_COMBOBOX, self.OnComboBox1Combobox,
id=wxID_DIALOG2COMBOBOX1)
self.staticText1 = wx.StaticText(id=wxID_DIALOG2STATICTEXT1,
label=u'test', name='staticText1', parent=self, pos=wx.Point(88,
16), size=wx.Size(19, 13), style=0)
def …Run Code Online (Sandbox Code Playgroud) 我的朋友写了一个应用程序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)
我只是在寻找一种简单的方法来做到这一点。谢谢
我有一个适用于wxpython旧版本的应用程序
现在使用wxpython 3.0,在尝试运行应用程序时,我收到以下错误
File "C:\Python27\lib\site-packages\wx-3.0-msw\wx\_controls.py", line 6523, in __init__
_controls_.DatePickerCtrl_swiginit(self,_controls_.new_DatePickerCtrl(*args, **kwargs))
wx._core.PyAssertionError: C++ assertion "strcmp(setlocale(LC_ALL, NULL), "C") == 0" failed at ..\..\src\common\intl.cpp(1449) in wxLocale::GetInfo(): You probably called setlocale() directly instead of using wxLocale and now there is a mismatch between C/C++ and Windows locale.
Things are going to break, please only change locale by creating wxLocale objects to avoid this!
Run Code Online (Sandbox Code Playgroud)
错误来自这一行
File "C:\Users\hadi\Dropbox\Projects\Python\dialysis\profile.py", line 159, in __init__
style=wx.DP_DROPDOWN)
Run Code Online (Sandbox Code Playgroud)
非常感谢帮助