小编cbu*_*art的帖子

C++将未知类型传递给虚函数

我正在用C++编写,我想将一个未知类型(仅在运行时知道)传递给纯虚函数:

virtual void DoSomething(??? data);
Run Code Online (Sandbox Code Playgroud)

where DoSomething是派生类中纯虚函数的实现.

我打算使用模板,但因为它结果是虚函数和模板不能一起工作:C++类成员函数模板可以是虚拟的吗?

我想避免为我传递给函数的所有类使用基类(类似于C#中的对象).

提前致谢

c++ templates virtual-functions

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

Qt和没有moc _*.cpp文件

我正在开发一个简单的Qt 4应用程序并进行自己的对话.我继承了QDialog,Q_OBJECT在类声明块中插入了宏,并且......我得到了

[链接器错误]未定义对'vtable for MyDialog'的引用,并且没有moc编译器生成的moc_MyDialog.cpp.

我在Windows XP和mingw上使用Qt 4.1.3.我从Qt提供的构建shell中遵循构建过程.我使用qmake创建make文件并使用make命令编译所有内容.

我有一个子类,其他类QPushButtonQObject分别,但他们编译OK.我找不到他们和破碎的人之间的任何差异.

在破碎的课堂上肯定会遗漏一些东西,但我无法发现它.

c++ qt qt4

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

如何使用Visual Studio 2017与Qt开发GUI应用程序?

我到处搜索但似乎无法找到对最新Visual Studio版本的支持.

有没有办法解决这个问题?

c++ windows user-interface qt visual-studio-2017

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

将QVariant转换为QStringList

我在调用函数时存储QStringList了一个QVariant变量setData.现在我想从QVariant变量中恢复这些数据.怎么做?

编辑:我试过转换,但我似乎不明白它是如何工作的.

qt qvariant qstringlist

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

有没有办法将QWidget添加到QtCreator中的QMenu

我创建一个文本编辑器,我想放QComboBoxQMenu.我没有在QMenu处理这样的事情中找到任何方法.最接近的是QMenu::addAction().我想知道绕过这个障碍.

谢谢!

c++ qt qwidget qmenu

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

在cvSetCaptureProperty中使用CV_CAP_PROP_POS_FRAMES获取单个帧

我试图通过设置CV_CAP_PROP_POS_FRAMES属性跳转到特定的框架,然后像这样读取框架:

cvSetCaptureProperty( input_video, CV_CAP_PROP_POS_FRAMES, current_frame );
frame = cvQueryFrame( input_video );
Run Code Online (Sandbox Code Playgroud)

我面临的问题是,OpenCV 2.1为12个连续值返回相同的帧,current_frame而我想读取每个单独的帧,而不仅仅是关键帧.谁能告诉我有什么问题?


我做了一些研究,发现问题是由解压缩算法引起的.

类似MPEG的算法(包括HD等)不会分别压缩每个帧,而是不时地保存关键帧,然后只保存最后一帧和后续帧之间的差异.

您报告的问题是由于,当您选择一个帧时,解码器(可能是ffmpeg)会自动前进到下一个关键帧.

那么,有没有办法解决这个问题呢?我不只想要关键帧,而是每个帧.

c opencv video-processing

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

如何通过Swift发送POST请求?

我有这样的控制器 -

def create
   if (@user = User.find_by_email(params[:email])) && @user.valid_password?(params[:password])
      render json: @user.as_json(only: [:email,:authentication_token]),status: :created
   else 
      render json:('Unauthorized Access')
   end  
end 
Run Code Online (Sandbox Code Playgroud)

当我使用Postman发出此请求时,我选择Body,并形成数据并添加电子邮件和密码.这个工作

在此输入图像描述

如何使用swift做同样的事情?这就是我尝试过的

let url = URL(string: "http://localhost:3000/api/v1/user_serialized/")

let config = URLSessionConfiguration.default

let request = NSMutableURLRequest(url: url!)

request.httpMethod = "POST"

let bodyData = "email=Test@test.com&password=Test1234"

request.httpBody = bodyData.data(using: String.Encoding.utf8);

let session = URLSession(configuration: config)

let task = session.dataTask(with: url! as URL, completionHandler: {(data, response, error) in
    let json = JSON(data:data!)

    debugPrint(json)
})

task.resume()
Run Code Online (Sandbox Code Playgroud)

xcode json postman swift

10
推荐指数
2
解决办法
3万
查看次数

用C++切片向量

[1:]在C++中有没有相当于Python 的列表切片与向量?我只想从矢量中获取除第一个元素之外的所有元素.

Python的列表切片运算符:

list1 = [1, 2, 3]
list2 = list1[1:]  

print(list2) # [2, 3]
Run Code Online (Sandbox Code Playgroud)

C++期望的结果:

std::vector<int> v1 = {1, 2, 3};
std::vector<int> v2;
v2 = v1[1:];

std::cout << v2 << std::endl;  //{2, 3}
Run Code Online (Sandbox Code Playgroud)

c++ vector

10
推荐指数
4
解决办法
9678
查看次数

多个QApplication实例

我想知道在同一进程中拥有多个QApplication/实例会产生什么影响(问题),以及如何解决与之相关的一些问题。QCoreApplication

场景如下:我想在开源第三方应用程序上制作一个包装器,以便将其转换为可嵌入小部件作为可选插件(该应用程序基本上由基于单一的QMainWindow接口组成)。

此类项目严重依赖QCoreApplication派生类,但基本上是因为它被用作已经存在的单例。我能够修改代码(并且我必须这样做才能将其公开QMainWindow为可嵌入的小部件),尽管由于该项目的复杂性我不能简单地删除父类。

因此,最终的应用程序将有自己的QApplication(在启动时创建),然后可以选择加载上述插件(从而创建第二个QCoreApplication)。只有第一个(主)QApplication用于事件循环 ( QCoreApplication::exec())。

我知道QCoreApplication单身的事实。在我的测试中,单例始终指向最后创建的实例:

qDebug() << qApp;
auto app1 = new QApplication(argc, argv);
qDebug() << qApp;
auto app2 = new TheOtherQApplication(argc, argv);
qDebug() << qApp;
Run Code Online (Sandbox Code Playgroud)

输出是

Q对象(0x0)

QApplication(0x6f9400,名称=“测试”)

QCoreApplication 中的 ASSERT 失败:“应该只有一个应用程序对象”,文件 kernel\qcoreapplication.cpp,第 595 行

TheOtherQApplication(0x2550dc0,名称=“测试”)

TheOtherQApplication(0x2550dc0,名称 =“测试”) TheOtherQApplication(0x2550dc0,名称 =“测试”)

可以看出,QApplication创建第二个实例后,它会替换全局实例。有什么办法可以解决这个问题吗?由于插件是可选的,明显的答案(QApplication在第二位加载主程序)不是一个合适的选择。

另外,拥有多个QApplication实例是否还有其他影响?或者都与事件循环(选中)和单例相关?

注意:由于第三方依赖项尚未完全更新,这是一个基于 Qt 4.7 的项目。计划在一年左右的时间内迁移到最新版本,但目前我必须处理 4.7。


顺便说一句,我已经审查了几个相关的问题,包括这个问题,但它没有提供任何有用的信息。

c++ singleton qt qapplication

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

从 cmd 运行 cl.exe

我已经安装Visual Studio Community 2017了 C++。我想从 cmd 使用它的编译器。我可以使用它,Developer Command Prompt for VS 2017但无法通过普通 cmd 使用它。我曾尝试运行vsvarsall.exeright click-> run as administrator。但什么也没有发生。好像我必须手动设置环境变量。每当我尝试运行命令时

cl hello.c

它说 hello.c(1): fatal error C1034: stdio.h: no include path set

c++ visual-studio

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