小编tam*_*gal的帖子

获取给定行的NSTableCellView

NSTableCellView是子类并存储指向Object的指针.我想访问该指针,我得到的唯一信息是row数字NSInteger.

如何使用给定的方式访问NSTableCellViewtableViewrow

nstableview

8
推荐指数
1
解决办法
4137
查看次数

UDP消息太长

我正在尝试通过UDP发送数据,并想知道为什么我的系统上最大数据长度限制为9253字节(Mac OS X 10.9).

这就是我发送数据的方式(简化):

import socket

UDP_IP = "127.0.0.1"
UDP_PORT = 9999
MESSAGE = "A"*9217

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.sendto(MESSAGE, (UDP_IP, UDP_PORT))
Run Code Online (Sandbox Code Playgroud)

我收到了错误

Traceback (most recent call last):
  File "Untitled 2.py", line 8, in <module>
    sock.sendto(MESSAGE, (UDP_IP, UDP_PORT))
socket.error: [Errno 40] Message too long
Run Code Online (Sandbox Code Playgroud)

实际上,我可以传输的最大"字符串长度"是9216.当我在客户端进行字节大小检查时

import socket

UDP_IP = "127.0.0.1"
UDP_PORT = 9999

self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
self.sock.bind((UDP_IP, UDP_PORT))
data, addr = self.sock.recvfrom(65535)
print("Received {0} bytes of data.".format(sys.getsizeof(data)))
Run Code Online (Sandbox Code Playgroud)

我明白了

Received 9253 bytes of data.
Run Code Online (Sandbox Code Playgroud)

我不明白为什么它是9253字节长,当我发送9216字节(这是字符串长度,以字节为单位).28个字节是UDP头,但是剩余的9个字节中存储了什么?

我的主要问题是:如何发送和接收最多65535字节的UDP数据包?

python sockets udp

8
推荐指数
1
解决办法
9856
查看次数

更改urwid/python2.6中当前显示的列表框的内容

我正在用python写一个音乐播放器,用cli使用urwid.我打算将当前播放列表放在一个simpleListWalker中,由列表框包装,然后是列,一堆,最后是一个帧.

如何用其他内容替换此列表框(或simpleListWalker)的全部内容?

相关代码:

class mainDisplay(object):
...
    def renderList(self):
       songList = db.getListOfSongs()
       songDictList = [item for item in songList if item['location'] in 
       commandSh.currentPlaylists[commandSh.plyr.currentList]]
       self.currentSongWidgets = self.createList(songDictList)
       self.mainListContent = urwid.SimpleListWalker([urwid.AttrMap(w, None, 
       'reveal focus') for w in self.currentSongWidgets])
    def initFace(self):#this is the init function that creates the interface
        #on startup
        ...
        self.scanPlaylists()
        self.renderList()
        self.mainList = urwid.ListBox(self.mainListContent)
        self.columns = urwid.Columns([self.mainList, self.secondaryList])
        self.pile = urwid.Pile([self.columns, 
        ("fixed", 1, self.statusDisplayOne), 
        ("fixed", 1, self.statusDisplayTwo), 
        ("fixed", 1, self.cmdShInterface)], 3)
        self.topFrame = urwid.Frame(self.pile)
Run Code Online (Sandbox Code Playgroud)

完整代码:http://github.com/ripdog/PyPlayer/tree/cli - 检查main.py是否有接口代码.

代码目前处于非常糟糕的状态,我只编程了两个月.我们非常感谢您对代码风格,布局或任何其他提示的任何建议.

python urwid

7
推荐指数
1
解决办法
2565
查看次数

没有"点击突出显示"的NSButton

NSButton在蓝色背景下,我有一张图片(没有文字).风格是" Square",类型是" Momentary Push In",没有边界等.

当我单击按钮时,它周围有一个浅色矩形,突出显示一秒钟.我怎么摆脱它?

我只想显示图像,点击时不应该有任何高亮显示...我应该是按钮的子类还是在Interface Builder中有一个简单的设置?

未点击 - 正常状态: NSButton正常状态

点击 - 突出显示: 单击时突出显示NSButton

所以我不想突出显示rect ;-)

highlighting nsbutton

7
推荐指数
1
解决办法
7403
查看次数

在PyCharm Professional 4中添加外部库

我正在尝试将外部库添加到我的项目中,但似乎没有办法在PyCharm 4(Professional)中这样做.我发现了几个类似的问题和可接受的答案,但这些问题似乎只适用于较旧的PyCharm版本.

这是一个例子:PyCharm和外部库

有谁知道如何在PyCharm 4 Professional中添加外部Python包和模块的路径?

python external pycharm

7
推荐指数
1
解决办法
5847
查看次数

缓存的整数,Python 3.7中的is运算符和id()

print(5 is 7 - 2, 300 is 302 - 2)在谈论一些Python琐事时,我曾经在Python演讲中展示过类似的内容。今天,我意识到在Python 3.7中运行时,此示例产生了一个(对我而言)意外的结果。

我们知道-5到255之间的数字是内部缓存的Python 3文档-PyLong_FromLong,也可以在早期的API文档中找到。

is操作者(如在该文档中描述的Python 3文档-是操作者)检测该对象的身份,即,其使用id()函数来确定和产率True时的值相匹配。

id()保证该函数在对象的生存期内返回唯一且恒定的值(也在docs Python 3 docs-id()中进行了描述)。

所有这些规则为您提供以下结果(许多Python编码人员都知道):

Python 2.7:

>>> print(5 is 7 - 2, 300 is 302 - 2)
True False
Run Code Online (Sandbox Code Playgroud)

Python 3.6:

>>> print(5 is 7 - 2, 300 is 302 - 2)
True False
Run Code Online (Sandbox Code Playgroud)

但是,Python 3.7的行为有所不同:

>>> print(5 is 7 - 2, 300 is 302 - 2)
True True
Run Code Online (Sandbox Code Playgroud)

我试图了解原因,但是在Python源中找不到任何提示...

id(302 …

python python-3.7

7
推荐指数
1
解决办法
65
查看次数

handleGetURLEvent不会被调用

我正在为我的某个应用程序实现自定义URL方案,但无法使其正常运行.

我将这些行添加到我的Info.plist中:

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLName</key>
        <string>MyApp URL</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>myscheme</string>
        </array>
    </dict>
</array>
Run Code Online (Sandbox Code Playgroud)

在我的应用程序委托中,我在ApplicationDidFinishedLaunching中安装事件处理程序:

NSAppleEventManager *appleEventManager = [NSAppleEventManager sharedAppleEventManager];
[appleEventManager setEventHandler:self andSelector:@selector(handleGetURLEvent:withReplyEvent:) forEventClass:kInternetEventClass andEventID:kAEGetURL];
Run Code Online (Sandbox Code Playgroud)

但是当我点击带有URL的链接时,不会调用该方法."myscheme://测试"

- (void)handleGetURLEvent:(NSAppleEventDescriptor *)event
           withReplyEvent:(NSAppleEventDescriptor *)replyEvent {

    // Extract the URL from the Apple event and handle it here.
    NSString* url = [[event paramDescriptorForKeyword:keyDirectObject] stringValue];
    NSLog(@"%@", url);
}
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

events cocoa event-handling url-scheme

6
推荐指数
1
解决办法
1897
查看次数

PyMinuit vs IMinuit

我在Python 2.7上寻找一个等同的服装,我发现了这两个变种:
PyMinuit
iMinuit.

我的问题是:它们之间有什么区别?

两者都使用了Seal 1.7.9 Minuit,并且在一些2D高斯拟合测试中我都给出了相同的答案.那么,除了安装方法(iMinuit更容易)之外,我为什么要选择一个呢?


谢谢你的帮助!的xD

PS我试图标记iminuit但我无法创建新标签... = /

python minimization pyminuit iminuit

6
推荐指数
1
解决办法
2366
查看次数

如何在不更改终端窗口大小的情况下更改OSX中的终端字体大小?

在OSX中,通过按CMD和('+'或' - ')更改终端中的字体大小也会改变窗口大小.这很烦人,因为我必须始终将窗口调整回正确的大小.

有没有办法在字体大小改变期间保持窗口大小受限?

我的解决方法是使用像Moom这样的Windows管理器在每次更改字体后快速调整窗口大小,但我很想知道是否可以完全消除窗口重新调整大小的步骤.谢谢!

macos terminal

6
推荐指数
1
解决办法
7764
查看次数

获取Jenkinsfile(Groovy)中给定文件夹中的文件名列表

我无法在脚本化的Jenkins管道中的给定目录中创建简单的文件名列表.我尝试在SO和其他论坛上发布了许多Groovy Script示例,但要么功能被阻止,要么我找不到方法.

这似乎是最简单的

def DOCKER_FILES_DIR = './dockerfiles'
// ...
def dir = new File(DOCKER_FILES_DIR);
def dockerfiles = [];
dir.traverse(type: FILES, maxDepth: 0) {
    dockerfiles.add(it)
}
Run Code Online (Sandbox Code Playgroud)

但这会错误地解决相对路径,所以我收到此错误:

java.io.FileNotFoundException: /./dockerfiles
Run Code Online (Sandbox Code Playgroud)

我也尝试用以下内容包装dir:

def DOCKER_FILES_DIR = './dockerfiles'
// ...
def dockerfiles = [];
dir("${env.WORKSPACE}"){
    def dir = new File(DOCKER_FILES_DIR);
    dir.traverse(type: FILES, maxDepth: 0) {
        dockerfiles.add(it)
    }
}
Run Code Online (Sandbox Code Playgroud)

但得到了同样的错误:

java.io.FileNotFoundException: /./dockerfiles
Run Code Online (Sandbox Code Playgroud)

这不会产生错误,但只会向列表中添加一个文件:

def DOCKER_FILES_DIR = './dockerfiles'
// ...
def dockerfiles = [];
def dir = new File("${env.WORKSPACE}/${DOCKER_FILES_DIR}");
dir.traverse(type: FILES, maxDepth: 0) {
    dockerfiles.add(it.getName()) …
Run Code Online (Sandbox Code Playgroud)

groovy jenkins jenkins-pipeline

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