Path

Qt在Xcode原生Mac Cocoa应用中使用时的Could not find the Qt platform plugin问题

最近在测试Xcode原生Mac Cocoa GUI应用中直接调用Qt GUI时遇到了一个报错找不到native plugin的问题。先记录下操作系统是:macOS 13.4,Xcode版本是:Version 14.3 (14E222b),Qt版本是:6.8.0。用法是在Xcode中新建一个App,interface选的xib(但应该没关系,因为根本没用任何xcode GUI编辑功能),然后在生成的的代码项目中手动加入各种依赖的Qt Framework,并设置好include,lib,rpath等各种路径。代码也是从网上搜到的很简单的创建Qt空间后,通过winId的方式(这是Qt6新改的,以前的Qt5及旧版本需要使用QMacNativeWidget)挂到NSView下,如下:

1
2
3
4
5
6
7
8
9
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    // Insert code here to initialize your application
    QPushButton* btn = new QPushButton("testtttttttttttt");
    NSView* viewBtn = (__bridge NSView*)((void*)btn->winId());
    [self.window.contentView addSubview:viewBtn];
    btn->show();
    [viewBtn setNeedsDisplay:YES];
    [self.window makeKeyAndOrderFront:self.window];
}

需要注意的是开了ARC后的winId返回到NSView*的cast,c cast,c++ cast直接用都不行,查了半天才找到这种__bridge cast配合强转void*的可行方式。

然后运行,发现了标题中的报错信息:

Continue reading…

PyCharm (JetBrains系IDE)运行配置中环境变量的附加修改问题

今天在研究python liblas时,发现使用的IDE PyCharm的一个小功能缺陷:在项目运行配置中的环境变量里无法以追加的方式修改当前环境变量的值,而且又看了下IDEA,相关功能的UI都是一样的,所以应该是JetBrains系的IDE都有同样的问题。
首先,windows下使用python liblas时,除了pip装liblas包以外,还要有相关的原生库,否则import的时候会直接报错。好在win下可以直接通过OSGeo4W安装预编译好的liblas库( https://trac.osgeo.org/osgeo4w/ ),装好后会有专用的命令行环境快捷方式,看了下和Visual Studio的Developer Command Line Prompt一样,会在这个专用命令行环境里设置一堆环境变量,这时直接运行python项目依然会报错,查了下原来是在加载liblas原生库时寻找Path环境变量里的路径找不到出的错,而专用命令行已经把OSGeo4W的bin加进去了…

Continue reading…