小编Ama*_*ann的帖子

cmake找不到qt 5.1.1

我刚刚为Windows 32位(MinGW 4.8,OpenGL)安装了Qt 5.1.1,并尝试将其添加到我的cmake中.但是CMake只是不想找到它,我不知道为什么.我错过了什么?我需要设置环境变量吗?

这是我的cmake:

cmake_minimum_required( VERSION 2.8.11 )
PROJECT(Blemmer)
# Find includes in corresponding build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# Instruct CMake to run moc automatically when needed.
set(CMAKE_AUTOMOC ON)
# Detect and add SFML
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/Modules" ${CMAKE_MODULE_PATH})

set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin )
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib )
find_package(SFML REQUIRED system window graphics network audio)
# The QUIET option disables messages if the package cannot be found. 
FIND_PACKAGE(Qt5Widgets) 
add_subdirectory(Entity)
add_subdirectory(Engine)
add_subdirectory(Game)
add_executable(Blemmer main.cpp)

include_directories(${SFML_INCLUDE_DIR} ${PROJECT_SOURCE_DIR})
target_link_libraries(Blemmer ${SFML_LIBRARIES} Game Engine Qt5::Widgets)
Run Code Online (Sandbox Code Playgroud)

这是cmake-gui的输出:

CMake …
Run Code Online (Sandbox Code Playgroud)

c++ qt cmake qt5 qtwidgets

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

如何使用cmake(和visual studio)为qt设计器创建自定义(小部件)插件

教程的数量,如何创建一个qt设计器插件是非常薄的...我发现总是使用qt创建者(像这样:http://qt-project.org/doc/qt-4.8/designer-customwidgetplugin .html).我必须在.pro文件中添加一些qt定义

 CONFIG      += designer plugin
Run Code Online (Sandbox Code Playgroud)

我使用CMake和Visual Studio进行编码,所以如果有人能告诉我如何成功创建一个.dll,我可以放入插件/设计器文件夹以使自定义小部件显示在Qt Designer中,这真的很棒

c++ qt cmake qt-designer

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

如何使用Browserify中的Node.js中的net模块?

我想net在客户端(在浏览器中)使用Node.js中的模块:

var net = require('net');
Run Code Online (Sandbox Code Playgroud)

所以我查找了如何将Node.js模块发送到客户端,而browserify似乎就是答案.我尝试使用jQuery,它就像一个魅力.但由于某种原因,该net模块不想工作.如果我写require('jquery')它工作正常,但如果我写require('net')它不起作用,这意味着我的捆绑.js文件是空的.

我试图寻找其他东西,但我发现的唯一的东西是Github上的net-browserify.有了这个,至少我的bundle.js文件被填充了,但是我使用它得到了一个JavaScript错误(它与该connect函数有关).

这是我在服务器端工作的代码就好了:

var net = require('net-browserify');
//or var net = require('net');

var client = new net.Socket();
client.connect({port:25003}, function() {
    console.log('Connected');
    client.write('Hello, server! Love, Client.');
});

client.on('data', function(data) {
    console.log('Received: ' + data);
    client.destroy(); // kill client after server's response
});

client.on('close', function() {
    console.log('Connection closed');
});
Run Code Online (Sandbox Code Playgroud)

我假设net-browserify允许你使用特定的connect功能,但我不知道哪个.

如何在客户端使用Node.js中的网络模块?

node.js browserify

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

QT Graph绘图,如何更改QGraphicsView的坐标系/几何

我正在使用QT并尝试使用QGraphicsView和QGraphicsScene来绘制图形.我不想要任何其他依赖项,这就是为什么我不使用QWT.当我绘制我的数据时,在我使用的那一刻

scene->drawLine(x1,y1,x2,y2,pen);
Run Code Online (Sandbox Code Playgroud)

然后,这将在QGraphicScene中的2个点之间划一条线.但这使用左上角x = 0 y = 0系统...我想使用我自己的系统,如下图所示.另一个问题是我有从-3到+ 3的双倍值.有任何人对QGraphicScene和QGraphicsView有一些经验并且可以告诉我如何才能实现这一目标?

在此输入图像描述

c++ qt graph graphics2d

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

c ++标头中的编译器错误,"未在此范围内声明"

当我尝试编译我的头文件时,编译器告诉我"'map'未在此范围内声明"(下面一行public:).为什么?

#pragma once
#include <SFML/Graphics.hpp>
#include <iostream>
#include <fstream>
#include <cctype>
#include <string>
#include <vector>
#ifndef TILEMAP_H
#define TILEMAP_H

class TileMap{

public:
    std::vector<std::vector<sf::Vector2i>> map;
    std::ifstream file;
    TileMap(std::string name);
    sf::Sprite tiles;
    sf::Texture tileTexture;
    void update();
    void draw(sf::RenderWindow* window);



};

#endif
Run Code Online (Sandbox Code Playgroud)

c++ compiler-errors

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

CMake FetchContent 不复制库

我正在使用 CMake FetchContent 下载和构建第三方库(在本例中为 realsense2)。在尝试了官方文档 ( https://cmake.org/cmake/help/v3.11/module/FetchContent.html ) 中的 googletest 示例后,它的工作方式给我留下了深刻的印象。包括标题是神奇地完成的。现在使用 realsense2 SDK 我遇到了问题。

我需要添加一个额外的 include_directories 命令,如下所示:

FetchContent_Declare(
realsense2
GIT_REPOSITORY https://github.com/IntelRealSense/librealsense.git
GIT_TAG        v2.23.0
)
FetchContent_MakeAvailable(realsense2)
FetchContent_GetProperties(realsense2)
if(NOT realsense2_POPULATED)
    FetchContent_Populate(realsense2)
    add_subdirectory(${realsense2_SOURCE_DIR} ${realsense2_BINARY_DIR})
endif()
//I should not be required to do this according to documentation
include_directories(${realsense2_SOURCE_DIR}/include)
Run Code Online (Sandbox Code Playgroud)

如果我不这样做,则找不到某些标题。关于这个问题有什么建议吗?

编辑:为了澄清,这就是我添加库的方式:

target_link_libraries(TestExe gtest gtest_main)
Run Code Online (Sandbox Code Playgroud)

另一个完全一样,但这次不是exe而是dll

add_library(TestLib SHARED ${TestLib_HEADERS} ${TestLib_SOURCES} )
target_link_libraries(TestLib realsense2)
Run Code Online (Sandbox Code Playgroud)

在这一点上我更关心为什么我不必为 googletest 框架添加任何包含

c++ cmake

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