小编Sim*_*ead的帖子

更具体的NSNumberFormatter失败行为

我有一个NSTextField我需要用户输入最大值和最小值之间的数字,如果我能检测NSNumberFormatter到特定测试失败的时候会很好,所以我可以显示更好的消息("数字太大"不是很有帮助,它需要显示有效范围)或者只是将字段自动设置为最接近的有效值.

我已经查看了NSTextField委托的?control:didFailToFormatString:errorDescription:方法,它似乎不允许你修改错误,我已经看过覆盖NSNumberFormatter?getObjectValue:forString:range:error:方法,它确实给了我一个NSError我可以修改的方法,但似乎没有以何种方式确定返回了哪个特定错误.

由于我只是输入一个简单的整数,我不需要大部分功能NSNumberFormatter,从头开始编写自己的格式化程序会更好吗?

validation macos cocoa objective-c nsnumberformatter

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

Django REST Framework:使用URL参数创建分层对象

我有一个带有分层资源的django-rest-framework REST API.我希望能够通过POST来创建子对象,/v1/objects/<pk>/subobjects/并让它自动将新子对象上的外键设置为pk来自URL 的kwarg,而不必将其放在有效负载中.目前,序列化程序导致400错误,因为它期望object外键在有效负载中,但它也不应被视为可选.子对象的URL是/v1/subobjects/<pk>/(因为父对象的密钥不需要识别它),所以如果我想要PUT现有资源,它仍然是必需的.

我应该这样做,以便你/v1/subobjects/在有效负载中使用父级POST来添加子对象,还是有一种干净的方法将pkkwarg从URL传递给序列化器?我正在使用HyperlinkedModelSerializerModelViewSet作为我各自的基类.有一些推荐的方法吗?到目前为止,我唯一的想法是完全重新实现ViewSets并创建一个自定义的Serializer类,其get_default_fields()来自一个从ViewSet传入的字典,由其kwargs填充.这似乎涉及一些我认为完全是普通的东西,所以我不禁想到我错过了一些东西.我见过的每个REST API都有可写端点这种基于URL的参数推断,所以django-rest-framework似乎根本无法做到这一点似乎很奇怪.

python django rest django-rest-framework

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

Qt:正确地将undo框架与QGraphicsScene集成

我正在编写一个基于QGraphicsScene画布的Qt应用程序,其上有可移动的形状,我正在尝试集成undo-redo功能.对于大多数函数,比如创建和删除形状,在它QGraphicsScene自身上实现它是相当简单的,但我希望元素是可移动的,并且运动是可撤销的.现在我正在使用场景上的橡皮筋拖曳模式ItemIsSelectableItemIsMovable项目上的标志.问题是,似乎没有好的地方来创建QUndoCommand表示形状运动.如果我在QGraphicsScene::itemChange方法中执行此操作,则选择并移动两个或更多个形状会导致不同对象的单独撤消命令被交错,因此无法合并,因此撤消会导致意外行为.QGraphicsScene当它的项目被移动时,没有任何事件被调用,我可以看到,所以我有点卡住了.

我看到的最糟糕的情况是我ItemIsMovable在自定义QGraphicsItem对象上禁用了标志并完全在QGraphicsScene鼠标事件中处理移动,但正确地重新实现该功能似乎相当复杂(我检查了Qt如何在内部执行它并且有很多代码用于处理复杂的情况,例如选择对象及其某些子对象的情况.这似乎是撤销堆栈最明显的用例(以至于撤消框架的示例程序QGraphicsScene与我的程序非常相似,除非没有多个对象移动支持)所以看起来很奇怪没有内置的方式在没有重新实现核心功能的重要部分的情况下做到这一点.有没有人有任何见解或程序的例子这样做?

c++ qt undo qgraphicsscene

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