小编fra*_*yan的帖子

在 QMessageBox 中添加详细文本会禁用关闭 (X) 按钮

我注意到一件有趣的事情 - 如果我向 QMessageBox 添加详细文本(它添加了“显示详细信息...”按钮),然后执行它将显示系统框架的关闭 (X) 按钮已禁用,因此将此窗口标记为不可关闭(右键单击框架 -> 关闭禁用)。

下面是一些示例代码:

QMessageBox box(QMessageBox::Critical, title, text, QMessageBox::Ok);
box.setDetailedText(detailedText); // comment this line to get close button enabled
box.exec();
Run Code Online (Sandbox Code Playgroud)

我什至没有找到在 Qt 中手动执行此操作的方法。有任何想法吗?

谢谢

qt qmessagebox

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

MotionLayout 破坏了(嵌套)子视图的重绘

我遇到了视图未刷新的问题MotionLayout

\n\n

似乎在某些时候,刷新/重绘机制MotionLayout被破坏,子视图(包括嵌套视图)在屏幕上更新自身时出现随机问题。到目前为止我所经历的:

\n\n
    \n
  1. RecyclerView有时不刷新。当新数据可用时会发生这种情况,我正在使用分页库来填充数据。当我在那里得到新数据时,我用滚动 1 个像素的解决方法修复了它 - recyclerView.smoothScrollBy(0,1)。之后,RecyclerView开始重新绘制自己就好了。
  2. \n
  3. 当键盘打开时,它会随机扰乱嵌套子视图的重绘。github \xe2\x81\xa0here中存在一个问题,其中一个人通过EditText向官方添加一个来重现所有这些MotionLayout示例我遇到的问题的一些示例:\n\n
      \n
    • 我正在使用TextInputLayoutwith app:endIconMode="clear_text"in MotionLayout -> ConstraintLayout -> TextInputLayoutX当我开始打字时(也在关闭键盘后),有时不会显示该按钮。
    • \n
    • TextView部分重绘!我在 a 中显示文本"No Results",并根据某种逻辑在它们之间切换,但不是刷新整个文本,而是仅显示在 UI 中。我已经调试过它,布局检查器说一切都很好,文本视图值为,但我在屏幕上看不到它。"No Posts"TextView"No""No Results"
    • \n
    • 其他一些动画被破坏,例如嵌套的不确定进度动画SwipeRefreshLayout
    • \n
  4. \n
\n\n

重要提示:当我进行转换时,所有刷新/重画问题都已解决!当我遇到一些混乱的状态,其中 3 个嵌套子视图被冻结/部分绘制时,我只需要按下一个按钮来触发我的转换,并且所有这些子视图都会愉快地重新绘制自己!

\n\n

请告诉我这是否是一个已知问题以及是否有解决方法。我也许可以做不可见的 1 像素转换,但我什至无法检测到MotionLayout刷新何时被破坏,处理键盘和新数据RecyclerView似乎并没有涵盖所有情况。否则,我将不得不返回ConstraintLayout并考虑OnSwipe …

android android-motionlayout

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

CAShapeLayer 通过路径端点部分绘制

当我使用CAShapeLayer并创建矩形形状时,路径从矩形的原点(左上角)开始并顺时针绘制。现在,如果我只想绘制形状的一部分,那么我将使用strokeStartstrokeEnd属性。当我想绘制由路径端点组成的部分时,问题就出现了。在这种情况下,路径是闭合的,并且它在矩形的左上角开始和结束。当我设置时strokeStart=0.8strokeEnd=0.2我希望它能够绘制路径的最后一部分以及从路径的开头开始的一点。然而,这是行不通的。有什么想法或技巧可以做到这一点吗?

更新:

添加图像来澄清我上面的意思。我想要一个绘制少量矩形并在矩形上绘制部分圆的动画: 在此输入图像描述

animation calayer cashapelayer ios

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

UIBarButtonItem的自定义视图中的Autolayout

我有一个奇怪的问题UIBarButtonItem.我正在创建一个自定义视图,视图是我自己的MyCustomView类型.它包含几个标签和一些其他子视图.每当我在此自定义视图类中使用autolayout来布局子视图时 - 按钮将显示在屏幕的左上角!您可以在下面的图片中看到它 - MyCustomView只有一个灰色背景的子视图,我使用自动布局来拉伸它以填充父级MyCustomView:

错误

当我不使用自动布局时,一切都很好,按钮正常显示:

对

任何人都可以解释我在这里发生了什么,我是否允许在自定义视图中使用autolayout,这些视图将被放入UIBarButtonItems(可能不在最顶层)?

更新:这发生在我之后

    self.translatesAutoresizingMaskIntoConstraints = NO;
Run Code Online (Sandbox Code Playgroud)

in MyCustomView- 在顶视图中应放置在条形按钮中.我这样做是为了让系统调用我的intrinsicContentSize方法.我想使用旧版sizeThatFits:仍然可以.

更新2:这是测试代码:

UIControl *cus = [[UIControl alloc] initWithFrame:CGRectMake(0, 0, 22, 22)];
// uncomment the following line to mess everything
//cus.translatesAutoresizingMaskIntoConstraints = NO;
cus.backgroundColor = [UIColor redColor];
UILabel *label = [UILabel new];
label.translatesAutoresizingMaskIntoConstraints = NO;
label.text = @"Q";
[label sizeToFit];
label.font = [UIFont systemFontOfSize:18];
[cus addSubview:label];
NSLayoutConstraint *centerX1 = [NSLayoutConstraint constraintWithItem:cus
                                                            attribute:NSLayoutAttributeCenterX …
Run Code Online (Sandbox Code Playgroud)

uinavigationbar uibarbuttonitem ios autolayout

5
推荐指数
0
解决办法
1932
查看次数

在Swift中动态解码任意json字段

TL; DR

有没有一种方法可以使用JSONDecoder并编写一个函数,它只是从给定的json读出指定的可解码类型的字段值?


成像我有以下json:

{
   "product":{
      "name":"PR1",
      "price":20
   },
   "employee":{
      "lastName":"Smith",
      "department":"IT",
      "manager":"Anderson"
   }
}
Run Code Online (Sandbox Code Playgroud)

我有2个Decodable结构:

struct Product: Decodable {
    var name: String
    var price: Int
}

struct Employee: Decodable {
    var lastName: String
    var department: String
    var manager: String
}
Run Code Online (Sandbox Code Playgroud)

我想写一个函数

func getValue<T:Decodable>(from json: Data, field: String) -> T { ... }
Run Code Online (Sandbox Code Playgroud)

所以我可以这样称呼它:

let product: Product = getValue(from: myJson, field: "product")
let employee: Employee = getValue(from: myJson, field: "employee")
Run Code Online (Sandbox Code Playgroud)

这是可能的,JSONDecoder或者我应该弄乱JSONSerialization,首先读出给定json的"子树",然后将其传递给解码器?在swift中似乎不允许在泛型函数中定义结构.

json nsjsonserialization swift jsondecoder

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

RenderScript阻塞函数调用

我是RenderScript的新手,对Java层调用的阻塞/非阻塞性质仍然不太了解.一般问题是:哪些情况会阻止代码并允许RenderScript完成.尤其:

  1. 从Java我调用了一个内核forEach_kernel()并且没有阻塞 - 我不得不添加一个额外的内容,Allocation.copyTo()以便我可以使用结果.有另一种方式吗?
  2. 我读到某个地方,如果有2个内核,那么调用第二个将阻塞,直到第一个完成.导致这种情况的原因 - 可能只有在进行相同的分配时?
  3. 可调用函数会阻塞a)彼此,b)内核吗?特别是,我有一个自定义初始化程序可调用函数,我需要准备一些稍后将由内核使用的数据.这个准备可能需要一些时间,所以我想知道用Java script.invoke_somefunc()调用然后立即调用是否有危险script.forEach_kernel()

android renderscript

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

AVPlayer播放视频合成结果不正确

我需要一个简单的事情:在旋转和应用视频的同时播放视频CIFilter.

首先,我创建了玩家项目:

AVPlayerItem *item = [AVPlayerItem playerItemWithURL:videoURL];

// DEBUG LOGGING
AVAssetTrack *track = [[item.asset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0];
NSLog(@"Natural size is: %@", NSStringFromCGSize(track.naturalSize));
NSLog(@"Preffered track transform is: %@", NSStringFromCGAffineTransform(track.preferredTransform));
NSLog(@"Preffered asset transform is: %@", NSStringFromCGAffineTransform(item.asset.preferredTransform));
Run Code Online (Sandbox Code Playgroud)

然后我需要应用视频合成.最初,我正在考虑创建一个AVVideoComposition带有2个指令 - 一个AVVideoCompositionLayerInstruction用于轮换,另一个用于CIFilter应用.但是,我得到一个异常抛出的说法"期望视频合成仅包含AVCoreImageFilterVideoCompositionInstruction",这意味着Apple不允许合并这两条指令.结果,我结合了两个过滤,这里是代码:

AVAsset *asset = playerItem.asset;
CGAffineTransform rotation = [self transformForItem:playerItem];

AVVideoComposition *composition = [AVVideoComposition videoCompositionWithAsset:asset applyingCIFiltersWithHandler:^(AVAsynchronousCIImageFilteringRequest * _Nonnull request) {
    // Step 1: get the input frame image (screenshot 1)
    CIImage *sourceImage = request.sourceImage; …
Run Code Online (Sandbox Code Playgroud)

avfoundation ios avplayer avvideocomposition

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

来自QNetworkAccessManager的QNetworkReply :: UnknownNetworkError ::使用受密码保护的代理服务器请求https时获取

我遇到QNetworkAccessManager的问题.以下是我正在做的一些简要说明:

QNetworkAccessManager* manager = new QNetworkAccessManager(this);
manager->setProxy(proxy);
QUrl url("https://www.example.com");
QNetworkRequest request(url);
manager->get(request);
Run Code Online (Sandbox Code Playgroud)

为了测试受密码保护的代理服务器上的代码,我使用了Polipo.在为服务器设置密码并使用NON-https url(http://www.example.com)时,我通常会发出proxyAuthenticationRequired()信号.然而,利用HTTPS URL中我没有这样的信号(或sslErrors()信号)发射并完成()信号被发射与reply->误差()等于QNetworkReply :: UnknownNetworkError.我敢肯定,这是不是一个Polipo即可问题,因为浏览器仍然要求代理服务器的用户名/密码,虽然在不正确的凭据的情况下,他们不说"代理身份验证失败"之类http网址,只是说该网页便无法被打开了.所以我需要知道如何配置qt类或其ssl类来请求身份验证并解决此问题.

我正在使用Qt 4.5.2.

谢谢!

ssl https networking qt

3
推荐指数
1
解决办法
3757
查看次数

屏幕解锁或应用切换时的 iOS 视图/控制器生命周期回调

当用户解锁手机或返回应用程序时,是否有任何在视图或控制器上调用的功能?注册应用程序进入前台的通知对我来说似乎很棘手,所以我期望类似viewDidLoad或被viewDidAppear调用的东西,但事实并非如此。

我的视图有不同的状态,在其中一个状态中它运行一个计时器(用户界面适当地指示了这一点)。计时器触发后,视图会调用服务器并更新 UI。似乎解锁后 NSTimer 从手机被锁定的地方继续,但是我想刷新它的状态,检查服务器剩余的超时并从正确的值运行计时器(如果超时已经是,则显示“正常”UI超过)。我只是找不到系统在返回应用程序时为我调用的回调。

nstimer uiviewcontroller ios

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

Swift json解码失去了json对象键顺序

我有一个简单的JSON对象:

{
    "values": {
        "a":"",
        "b":"",
        "c":"",
        "d":"",
        "e":""
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望以这种方式将它解码为Swift结构,以后我可以values按照与接收JSON对象完全相同的顺序迭代键.

这在Swift中可能吗?


我的尝试如下:

let json = "{ \"values\": { \"a\":\"\", \"b\":\"\", \"c\":\"\", \"d\":\"\", \"e\":\"\" } }"

struct JSS: Codable {
    var values: [String: String?]?
}

let data = json.data(using: .utf8)

do {
    let decoder = JSONDecoder()
    let jss = try decoder.decode(JSS.self, from: data!)
    jss.values?.map { print("\($0.key)") }
}
catch {
}
Run Code Online (Sandbox Code Playgroud)

将打印:

b
e
a
d
c
Run Code Online (Sandbox Code Playgroud)

json swift

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