小编Rei*_*ica的帖子

最简单的TBB示例

有人可以给我一个TBB示例如何:

  1. 设置活动线程的最大数量.
  2. 执行彼此独立的任务,并以类的形式呈现,而不是静态函数.

c++ tbb icc

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

//![0]在Qt源代码中

Qt示例项目中C++/QML源中的//! [n](n= 0,1,2 ......)标记是什么意思?

例如:

//! [0]
GLWidget::GLWidget(Helper *helper, QWidget *parent)
    : QGLWidget(QGLFormat(QGL::SampleBuffers), parent), helper(helper)
{
    elapsed = 0;
    setFixedSize(840, 400);
    setAutoFillBackground(false);
}
//! [0]

//! [1]
void GLWidget::animate()
{
    elapsed = (elapsed + qobject_cast<QTimer*>(sender())->interval()) % 1000;
    repaint();
}
//! [1]

//! [2]
void GLWidget::paintEvent(QPaintEvent *event)
{
    QPainter painter;
    painter.begin(this);
    painter.setRenderHint(QPainter::Antialiasing);
    helper->paint(&painter, event, elapsed);
    painter.end();
}
//! [2]
Run Code Online (Sandbox Code Playgroud)

c++ qt comments qdoc

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

如何在Qt中有效地显示OpenCV视频?

我在OpenCV的帮助下从ip摄像头捕获多个流.当我尝试从OpenCV窗口(cv::namedWindow(...))显示这些流时,它没有任何问题(我到目前为止已尝试过多达4个流).

当我尝试在Qt小部件中显示这些流时出现问题.由于捕获是在另一个线程中完成的,我必须使用信号槽机制来更新QWidget(在主线程中).

基本上,我从捕获线程发出新捕获的帧,并且GUI线程中的一个插槽捕获它.当我打开4个流时,我无法像以前那样流畅地显示视频.

这是发射器:

void capture::start_process() {
    m_enable = true;
    cv::Mat frame;

    while(m_enable) {
        if (!m_video_handle->read(frame)) {
            break;
        }
        cv::cvtColor(frame, frame,CV_BGR2RGB);

        qDebug() << "FRAME : " << frame.data;

        emit image_ready(QImage(frame.data, frame.cols, frame.rows, frame.step, QImage::Format_RGB888));
        cv::waitKey(30);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的插槽:

void widget::set_image(QImage image) {
    img = image;
    qDebug() << "PARAMETER IMAGE: " << image.scanLine(0);
    qDebug() << "MEMBER IMAGE: " << img.scanLine(0);
}
Run Code Online (Sandbox Code Playgroud)

问题似乎是连续复制QImages的开销.尽管QImage使用隐式共享,但当我通过qDebug()消息比较图像的数据指针时,我看到了不同的地址.

1-有没有办法将OpenCV窗口直接嵌入到QWidget中?

2-处理显示多个视频的最有效方法是什么?例如,视频管理系统如何同时显示多达32台摄像机?

3-必须走的路是什么?

c++ qt multithreading opencv

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

创建LLVM的原因是什么?

LLVM和常规编译器之间有什么区别?
它是否更具动态性,因此可用于将通常非常动态的语言(即Javascript)编译成静态二进制代码?创建一个原则背后的原则是什么?
我知道编译器的龙书,但LLVM有这样的东西吗?

编辑:我发现了这个有趣的项目.

compiler-construction compiler-theory llvm

18
推荐指数
2
解决办法
5293
查看次数

Firefox中的HTTP Basic Auth通过URL不起作用?

我知道通常你可以通过在URL中传递用户名和密码来登录需要使用Selenium进行HTTP基本身份验证的站点,例如:

selenium.open("http://myusername:myuserpassword@mydomain.com/mypath");
Run Code Online (Sandbox Code Playgroud)

我一直在使用Firefox 2或3运行Selenium测试,在那里我仍然得到"需要身份验证"对话框窗口?

更新:似乎不是Selenium问题,而是Firefox问题.如果我在FF中手动输入URL,我将获得身份验证对话框,但如果我在Opera中输入URL,则会显示我的页面而不显示身份验证对话框.

testing selenium functional-testing basic-authentication

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

我怎样才能优化这个计算?(x ^ a + y ^ a + z ^ a)^(1/a)

正如标题所示.我需要做这样的大量计算:

re = (x^a + y^a + z^a)^(1/a).
Run Code Online (Sandbox Code Playgroud)

其中{ x,y,z }> = 0.更具体地,a是正浮点常数,x,y,z是浮点数.这^是一个取幂运算符.

目前,我不想使用SIMD,但希望有其他一些技巧来加速它.

static void heavy_load(void) {
  static struct xyz_t {
    float x,y,z;
  };
  struct xyz_t xyzs[10000];
  float re[10000] = {.0f};
  const float a = 0.2;

  /* here fill xyzs using some random positive floating point values */

  for (i = 0; i < 10000; ++ i) {
    /* here is what we need to …
Run Code Online (Sandbox Code Playgroud)

c c++ math optimization

18
推荐指数
2
解决办法
1298
查看次数

各种Qt平台插件有什么用?

我正在为基于ARM的目标(TI AM335x EVM)进行Qt5.2应用程序的交叉编译,但它无法在我的平台上显示任何内容.做了一些google'ing之后,我发现如果我用以下方式启动它:

 ./helloworld -platform eglfs
Run Code Online (Sandbox Code Playgroud)

它会出现(全屏,但它工作)!

我开始查看所有平台选项,我发现:

android,eglfs,linuxfb,minimalegl,windows,xcb,cocoa,ios,offscreen,qnx,directfp,kms,minimal,openwfd

我想知道他们是为了什么.我假设,例如,如果我想在Android设备上运行我的应用程序,我必须通过-platform android,但它们对我来说并不是很明显.

是否应该使用每个参数的列表?

例如,什么eglfs代表什么?为什么我需要使用那些linuxfb不起作用的地方?
(我原本以为linux帧缓冲区是我想要启动我的应用程序,因为它在嵌入式linux上运行)

linux plugins qt cross-platform qt5

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

如何更改QDialogBu​​ttonBox中按钮的标题?

我添加了一个QDialogButtonBox带有默认取消确定按钮的按钮.

有没有办法改变这些按钮的标题?例如,OK应该变为Run.

qt pyqt qt-designer

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

Java:在BigDecimal中删除小数点后的零

我有这样的程序,

BigDecimal bd = new BigDecimal(23.086);
BigDecimal bd1= new BigDecimal(0.000);

bd = bd.setScale(2, RoundingMode.HALF_UP).stripTrailingZeros();
bd1 = bd1.setScale(2, RoundingMode.HALF_UP).stripTrailingZeros();

System.out.println("bd value::"+ bd);
System.out.println("bd1 value::"+ bd1);
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:23.09for bd和0.00 for bd1,但我想要bd10不是0.00.我正确应用这些方法吗?

java

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

如何在Windows上部署Qt应用程序?

所以现在我可以制作我的应用程序的.exe.现在如何让我的应用程序准备好为Windows部署?

这是Windows上Qt应用程序部署问题的规范问题.

c++ windows deployment qt

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