小编Phi*_*Bot的帖子

从模态视图控制器更改选项卡栏应用程序的选定索引

我正在使用Xcode中的内置标签栏应用程序模板创建标签栏应用程序.我有4个选项卡,其中一个是mapView.对于一些视图控制器,我的代码以编程方式设置选项卡栏的选定索引,具体取决于用户操作.对于mapView视图控制器,我有一个方法,当用户点击选定的注释时,该方法显示模态视图.模态视图包含有关所选注释的一些信息.我可以解除模态视图控制器并正确返回mapView.

我的问题是我想在模态视图控制器上放置一个"主页"按钮,它应该关闭模态视图并将用户带到标签栏上的0索引(AKA主页).mapView是索引3.

我不能从附加到主页按钮的模态视图中执行[self.tab setSelectedIndex:0] - 它不起作用.也许我在思考这个问题.任何人都可以提供解决方案/提示吗?我非常感谢!谢谢.

iphone tabs cocoa-touch modal-dialog uitabbarcontroller

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

如何在PyPy中安装/使用cx_Oracle

我似乎无法在Google或SO上找到任何关于让cx_Oracle与PyPy一起工作的信息.有人可以告诉我是否有可能,如果是的话,我怎么能做到这一点?

python cx-oracle pypy

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

Windows上的QtCreator使用CodeSourcery工具链交叉编译Linux ARM

我在Windows 7机器上安装了Qt Creator,目标是OMAP3嵌入式Linux主板.我下载了目标工具链,Sourcery-G ++ Lite for Windows,还在我的Windows机器上安装了MinGW(http://www.mingw.org/).在QT Creator中,我将CodeSourcery工具链添加为"手动"工具链,如下图所示.然后,我尝试使用此工具链构建演示Qt App'analogclock',为'analogclock'演示应用程序编辑'Projects'下的'Build Settings'.但是在第2张图片中显示的Build Settings下没有工具链.

如何使用构建选项中的Code Sourcery工具链从Qt Creator构建此演示应用程序或任何Qt应用程序?我绝对必须使用Windows来完成这个(不能使用Linux VM ...).

我相信它可能与为目标构建Qt库有关,但我不确定这是否属实或如何在Windows上执行此操作.非常感谢您的帮助和见解.

Qt Creator CodeSourcery工具链

Qt Creator构建设置

编辑:新信息 - 需要帮助配置Qt Creator:

我已经使用CodeSourcery工具链来构建Qt 4.8库而没有错误,我在http://c2143.blogspot.com/?view=classic之后在/ lib目录中有.so文件.现在我试图挂钩CodeSourcery编译器并将Qt 4.8构建到Qt Creator,这样我就可以为目标板构建一个示例应用程序.

我阅读了以下文章:http : //doc.qt.nokia.com/qtcreator-2.4/creator-project-qmake.html http://doc.qt.nokia.com/qtcreator-2.4/creator-tool-chains .html 描述如何将Qt版本的新工具链添加到Qt Creator.请参阅附件中有关我如何配置Qt Creator的图片.我正在使用Qt Creator 2.4.1.

Qt版本 工具链 Buildsettings

我收到错误,但下面没有太多信息粘贴......对此或我的配置有什么想法?

09:51:07: Running build steps for project analogclock...
09:51:07: Configuration unchanged, skipping qmake step.
09:51:07: Starting: "C:\QtSDK\mingw\bin\mingw32-make.exe" 
arm-none-linux-gnueabi-g++ -c -pipe -march=armv7-a -mtune=cortex-a8 -mthumb -mfpu=neon -mfloat-abi=softfp -Wa,-mimplicit-it=thumb -O2 -Wall -W -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I"..\qt-4.8-src\include\QtCore" -I"..\qt-4.8-src\include\QtNetwork" -I"..\qt-4.8-src\include\QtGui" -I"..\qt-4.8-src\include" -I"." …
Run Code Online (Sandbox Code Playgroud)

qt cross-compiling qt-creator toolchain linux-toolchain

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

自定义Windows USB/RNDIS .inf文件以更改网络连接名称

我使用g_etherLinux中的驱动程序通过USB上的以太网让我的嵌入式Linux设备与Windows 7进行通信.我正在尝试修改linux.inf内核源代码中的示例文件,src/Documentation/usb/以使我的设备在"Windows网络连接"对话框中显示为"本地连接2"以外的其他内容.

我只是修改了文件的[strings]一部分,linux.inf以指定一个自定义字符串,该字符串在"Local Area Connection 2"主标题下显示为子字符串.

我不知道如何让我的设备说'Phils Device'而不是'Local Area Connection 2'.如果有人能告诉我如何做到这一点,我将不胜感激!谢谢 -

我修改的示例.inf文件的部分:

[Strings]
Company               = "Phil"
CompanyDevice         = "Phils Device"
Vista_Property        = "Phils Device"
ServiceDisplayName    = "Phils Device Driver"
Run Code Online (Sandbox Code Playgroud)

参考文献:

http://msdn.microsoft.com/en-us/library/ff570620.aspx

http://msdn.microsoft.com/en-us/windows/hardware/gg463293.aspx

windows driver inf rndis network-connection

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

Qt将负十六进制字符串转换为有符号整数

我正在读取i2c设备的寄存器,返回值的范围是-32768到32768,有符号整数.以下是一个例子:

# i2cget -y 3 0x0b 0x0a w
0xfec7
Run Code Online (Sandbox Code Playgroud)

在Qt中,我得到这个值(0xfec7)并希望将它作为有符号整数显示在QLabel中.变量stringListSplit [0]是一个值为'0xfec7'的QString.

// Now update the label
int milAmps = stringListSplit[0].toInt(0,16); // tried qint32
qDebug() << milAmps;
Run Code Online (Sandbox Code Playgroud)

问题是无论我尝试什么,我总是得到无符号整数,所以对于这个例子,我得到的65223超过了指定的最大返回值.我需要将十六进制值转换为有符号整数,因此我需要将十六进制值视为用2s补码表示.我没有在QString文档中看到一个简单的方法.我怎样才能在Qt中实现这一目标?

注意:

QString :: toShort返回0:

// Now update the label
short milAmps = stringListSplit[0].toShort(0,16);
qDebug() << "My new result: " << milAmps;
Run Code Online (Sandbox Code Playgroud)

对于stringListSplit [0]的输入等于'0xfebe',我得到-322的输出,使用由Keith回答的C风格的转换,如下所示:

// Now update the label
int milAmps = stringListSplit[0].toInt(0,16);
qDebug() << "My new result: " << (int16_t)milAmps;
Run Code Online (Sandbox Code Playgroud)

c++ qt hex signed

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

以编程方式将Linux缓存作为非root用户删除

出于测试目的,我可以通过在procfs下写入Linux中的drop_caches文件来删除缓存内存.我只能以root身份执行此操作.这是在嵌入式Linux上,因此没有sudo.

sync; echo 3 > /proc/sys/vm/drop_caches
Run Code Online (Sandbox Code Playgroud)

我可以通过以下方式在c ++中以编程方式写入文件 - > 如何在Linux系统上以编程方式清除C++中的文件系统内存缓存?

sync();
std::ofstream ofs("/proc/sys/vm/drop_caches");
ofs << "3" << std::endl;
Run Code Online (Sandbox Code Playgroud)

挑战是希望以非root用户身份运行应用程序时执行此操作.在重新启动时,权限如下所示:

# cd /proc/sys/vm/
# ls -lrt drop_caches 
-rw-r--r--    1 root     root             0 Feb 13 19:50 drop_caches
Run Code Online (Sandbox Code Playgroud)

你似乎无法改变这些权限 - 即使是root:

# chmod 777 drop_caches 
chmod: drop_caches: Operation not permitted
# chown user:user drop_caches 
chown: drop_caches: Operation not permitted
Run Code Online (Sandbox Code Playgroud)

我怎样才能在Linux上实现这一目标?是否可以更改procfs文件的权限?如有必要,我可以完全自定义我的内核.谢谢 -

c++ linux permissions embedded-linux procfs

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

Qt Creator 2.7.1和Qt 4.8.4无法远程调试库

使用Qt Creator 2.7.1和Qt 4.8.4,我创建了一个Qt库和一个简单的Qt应用程序,可以动态链接到这个库.我正在尝试远程部署和调试我的应用程序,并在调用它时进入我的库函数.我可以成功设置断点并远程调试,但我不能使用调试器(gdb)进入我的库函数.当我第一次在调试模式下使用QtCreator远程启动我的应用程序时,我遇到以下警告:

Could not load shared library symbols for 7 libraries, e.g. libcustom-stuff.so.1.
Use the "info sharedlibrary" command to see the complete listing.
Do you need "set solib-search-path" or "set sysroot"?
Run Code Online (Sandbox Code Playgroud)

我的调试器是使用QtCreator设置的,如这些图像所示(注意我在图像#3中切换了'目标路径'和'路径',但它没有帮助: 在此输入图像描述 在此输入图像描述 在此输入图像描述

我的"套件"设置如下:

在此输入图像描述

在Qt Creator中的'Debugger Log'中,我输入了'Command':

info sharedlibrary
Run Code Online (Sandbox Code Playgroud)

我收到了回复:

>~"From        To          Syms Read   Shared Object Library\n"
>~"0x400007e0  0x40011bf0  Yes         /home/user/proj/output/buildroot/host/usr/arm-buildroot-linux-gnueabi/sysroot/lib/ld-linux.so.3\n"
>~"                        No          libcustom-stuff.so.1\n"
>~"0x4006d018  0x400d7124  Yes         /home/user/proj/output/buildroot/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/lib/libQtDBus.so.4\n"
>~"0x401065c4  0x4013dd18  Yes         /home/user/proj/output/buildroot/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/lib/libQtXml.so.4\n"
>~"0x40172430  0x4024c1b4  Yes         /home/user/proj/output/buildroot/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/lib/libQtNetwork.so.4\n"
Run Code Online (Sandbox Code Playgroud)

我还确保库和应用程序都是用以下内容构建的:

CONFIG+=declarative_debug
Run Code Online (Sandbox Code Playgroud)

在库和应用程序的"编译输出"窗格中,我看到'-g'标志.

它们都驻留在文件系统的同一目录中,所以发生了什么!如何在App中调试和设置断点,但不能进入库调用?任何想法都非常感谢.

更新:

根据kikeenrique的建议,我尝试从我的Ubuntu主机(而不是ARM目标)加载调试符号:

GNU gdb (Ubuntu/Linaro 7.4-0~69~lucid1) 7.4
Copyright (C) …
Run Code Online (Sandbox Code Playgroud)

qt gdb remote-debugging qt-creator gdbserver

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

qdbusxml2cpp未知类型

使用qdbusxml2cpp程序将以下xml转换为Qt类时,我收到此错误:

qdbusxml2cpp -c ObjectManager -a ObjectManager:ObjectManager.cpp xml/object_manager.xml 
Got unknown type `a{oa{sa{sv}}}'
You should add <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="<type>"/> to the XML description
Run Code Online (Sandbox Code Playgroud)

D-Feet描述:

在此输入图像描述

XML:

<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node><interface name="org.freedesktop.DBus.Introspectable"><method name="Introspect"><arg name="xml" type="s" direction="out"/>
</method></interface><interface name="org.freedesktop.DBus.ObjectManager"><method name="GetManagedObjects"><arg name="objects" type="a{oa{sa{sv}}}" direction="out"/>
</method><signal name="InterfacesAdded"><arg name="object" type="o"/>
<arg name="interfaces" type="a{sa{sv}}"/>
</signal>
<signal name="InterfacesRemoved"><arg name="object" type="o"/>
<arg name="interfaces" type="as"/>
</signal>
</interface><node name="org"/></node>
Run Code Online (Sandbox Code Playgroud)

从这个网站(http://techbase.kde.org/Development/Tutorials/D-Bus/CustomTypes)我明白我需要在XML中添加一个注释才能使工具正常工作.

这是我到目前为止:

a{oa{sa{sv}}}

https://alteeve.ca/w/List_of_DBus_data_types
o == A UTF-8 string whose value is a valid DBus object …
Run Code Online (Sandbox Code Playgroud)

c++ qt dbus qdbus qdbusxml2cpp

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

分类指标不能同时处理二进制目标和连续目标

我正在学习SciKit-Learn,我想确定最适合我的数据的模型。如下面的代码所示,我尝试训练和测试多个模型,并尝试打印出精度。这些模型中只有某些模型可以工作,其他模型则因ValueError失败:分类指标无法处理二进制目标和连续目标的混合情况。

这个错误是什么意思?如何修改下面的代码以成功评估失败的模型?

import pandas as pd
import numpy as np

import matplotlib.pyplot as plt
from sklearn import model_selection
from sklearn.metrics import classification_report
from sklearn.metrics import confusion_matrix
from sklearn.metrics import accuracy_score

from sklearn import linear_model
from sklearn import svm

from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from sklearn.naive_bayes import GaussianNB
from sklearn.svm import SVC

from sklearn import preprocessing
from sklearn import utils

# Shuffle pandas rows randomly
from sklearn.utils import shuffle

# …
Run Code Online (Sandbox Code Playgroud)

python machine-learning python-3.x scikit-learn

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

适用于Mac OS的Docker桌面Catalina将Container中的SD卡卷安装为循环设备以使用dd闪存SD卡

我正在使用Mac版2.1.0.4的Docker桌面。我有一个Docker容器,它是一个Ubuntu 18.04 Linux VM,其中包含Yocto Build系统。我用它为我的NVIDIA Jetson Nano生成SD卡。在构建过程结束时,我具有* .img文件,可以将其直接“ dd”存储到SD卡中并用于引导我的Jetson Nano。我希望Docker容器从MacBook挂载SD卡卷,以便它可以从容器内部直接dd到SD卡,而不是从Mac终端手动复制并运行“ dd”。我通常通过在Linux中将(未安装的)/ dev / sdX设备挂载为具有Lostup的循环设备来执行此操作,然后运行“ dd”。

通过使用以下命令启动容器,我可以成功安装SD卡并查看其内容。

MacBook-Pro:~ me$ docker run -it -v /Volumes/pkop:/opt/myvolume jetson-nano bash
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

root@c4102f7124d4:~/Desktop/jetson-yocto$ ls /opt/myvolume/
a.txt  b.xt  lost+found
Run Code Online (Sandbox Code Playgroud)

我可以将文件从Mac或Container写入此共享卷,并从两个角度查看更改。

但是,我无法弄清楚(或在Google上找到)如何卸载共享卷(因此容器中未使用该共享卷)并能够直接对其进行“ dd”操作。

我怎样才能做到这一点?谢谢。

在此处输入图片说明

在此处输入图片说明

注意:我尝试了以下操作,很遗憾,它仍然无法正常工作:

MacBook-Pro:~ me$ mount
...
/dev/disk2s2 on /Volumes/BOOT (msdos, local, nodev, nosuid, noowners)
MacBook-Pro:~ me$ sudo diskutil unmount /dev/disk2s2
Password:
Volume BOOT on disk2s2 unmounted
MacBook-Pro:~ me$ sudo mkdir …
Run Code Online (Sandbox Code Playgroud)

macos virtual-machine docker docker-machine ubuntu-18.04

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