小编Jam*_*rey的帖子

我什么时候在Qt中使用指针?

我已经编程了Qt一段时间了,我想知道这两种情况之间有什么区别:

情况1:

标题:

QPushButton * button;
Run Code Online (Sandbox Code Playgroud)

源文件:

button = new QPushButton(this);
button->setText("Button");
button->resize(100,100);
Run Code Online (Sandbox Code Playgroud)

案例2:

标题:

QPushButton button;
Run Code Online (Sandbox Code Playgroud)

资源:

button.setParent(this);
button.setText("Button");
button.resize(100,100);
Run Code Online (Sandbox Code Playgroud)

两者都产生一个按钮,但是什么时候应该使用前者而后者呢?这两者有什么区别?

c++ qt pointers

17
推荐指数
2
解决办法
6052
查看次数

MinGW中的uint24_t和uint48_t

我正在寻找GCC和MinGW中的uint24_t和uint48_t类型.我知道它们都不是标准化的,但我在网上遇到了对它们的引用,我想弄清楚:

  1. 我需要为他们包含什么标题.
  2. 无论是跨平台(至少在Windows,Linux和Mac OSX上),还是仅针对特定目标.
  3. 他们的名字是什么.uint24_t,__ uint24,__ uint24_t?

c++ gcc mingw

7
推荐指数
1
解决办法
6860
查看次数

反转按位左移和OR分配

对此有什么反函数?

A = (B << 3) | 0x07;
Run Code Online (Sandbox Code Playgroud)

B当我已经有相应的时候,我怎么能得到一个A

c c++ bit-manipulation bit-shift or-operator

7
推荐指数
1
解决办法
1984
查看次数

移植到Lua 5.2,LUA_GLOBALSINDEX麻烦

在代码示例中:http://lua-users.org/wiki/SimplerCppBinding

有代码:

lua_pushstring(L, T::className);
lua_pushvalue(L, methods);
lua_settable(L, LUA_GLOBALSINDEX);  //<--- LUA_GLOBALSINDEX removed in Lua 5.2

lua_pushliteral(L, "__metatable");
lua_pushvalue(L, methods);
lua_settable(L, metatable); 
Run Code Online (Sandbox Code Playgroud)

在Lua 5.2中,LUA_GLOBALSINDEX不再存在.相反,它有lua_setglobal()和lua_getglobal().


我是否正确地认为:

lua_pushvalue(L, methods);
lua_setglobal(L, T::className);
Run Code Online (Sandbox Code Playgroud)

...是正确的替代品:

lua_pushstring(L, T::className);
lua_pushvalue(L, methods);
lua_settable(L, LUA_GLOBALSINDEX);
Run Code Online (Sandbox Code Playgroud)

我对Lua太新了,确定,我已经8个月没用了.看一下文档,我认为这是正确的,但是想要验证.

lua lua-5.2

6
推荐指数
1
解决办法
5156
查看次数

我需要手动声明> =和<=运算符吗?

如果我已经有operator>operator < defined(和operator ==),我是否需要定义operator> =operator <=,或者如果我故意不声明它们,编译器是否会为它声明它们?

另外,如果我有operator == defined,编译器会为我声明operator!=吗?

c++ operator-overloading operators

6
推荐指数
2
解决办法
214
查看次数

让QPushButton隐形但仍然有效?

在我的项目中,我有一些按钮在可见和不可见之间变换使用:

ui->button->setVisible(true);
//or
ui->button->setVisible(false);
Run Code Online (Sandbox Code Playgroud)

然而,似乎当它们看不见时,它们也不起作用?我怎么能绕过这个?

我已经尝试过了:

ui->button->setEnabled(true);
Run Code Online (Sandbox Code Playgroud)

对于他们所有人,但没有任何变化.

c++ qt qpushbutton

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

Visual Studio-扩展安装“找不到安装引擎实例”。

我正在尝试为Visual Studio 2019预览版(社区)安装Qt加载项,但是该加载项在安装过程中导致错误。

首先,我在Visual Studio 2017(Community)中进行了尝试,但是遇到了困难,因此我两次重新安装了VS17。最后,我卸载了该文件,并安装了Visual Studio 2019社区预览(也支持此特定扩展名),但仍然有问题。

我通过内置的Visual Studio扩展服务安装了它。

我是Visual Studio的新手,通常我使用QtCreator,但想使用Visual Studio的高级调试工具调试项目。我该如何解决这个问题?

1/25/2019 8:02:28 PM - Beginning to install extension to Microsoft Visual Studio Community 2017...
1/25/2019 8:02:28 PM - Found setup instance 883a9c0e but not in launchable state.
1/25/2019 8:02:28 PM - Install Error : System.InvalidOperationException: Cannot find setup engine instance.
   at Microsoft.VisualStudio.ExtensionManager.SetupEngineUtility.GetCurrentSetupInstance(IEngineHost engineHost)
   at Microsoft.VisualStudio.ExtensionManager.SetupEngineService.CreateEngine(IEngineHost engineHost, IServiceProvider serviceProvider, InstallFlags installFlags)
   at Microsoft.VisualStudio.ExtensionManager.ExtensionEngineImpl.PerformSetupEngineInstall(InstallableExtensionImpl extension, Boolean installPerMachine, Boolean isPackComponent, IDictionary`2 extensionsInstalledSoFar, List`1 extensionsUninstalledSoFar, IInstalledExtensionList modifiedInstalledExtensionsList, IProgress`1 progress, InstallFlags installFlags, …
Run Code Online (Sandbox Code Playgroud)

qt add-in visual-studio

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

get_discount_total() 和 get_total_discount() 的区别?

在 WooCommerce 中,我注意到在WC_CartWC_Order 中,都有get_total_discount()get_discount_total()

这些有什么区别?我应该使用哪个来获取购物车/订单的折扣价值

php woocommerce

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

C++ std::numeric_limits&lt;float&gt;::max() 能否准确存储在 float 中并稍后进行比较?

我知道有些值无法在浮点数中轻松定义,并且只是“近似”,使得直接“等于”比较经常不起作用。

std::numeric_limits::max 是否可以准确地存储在浮点数中,并且此代码会按预期运行吗?

float myFloat = std::numeric_limits<float>::max();

//...later...
if(myFloat == std::numeric_limits<float>::max())
{
    //...myFloat hasn't changed...
}
Run Code Online (Sandbox Code Playgroud)

c++ floating-accuracy

4
推荐指数
1
解决办法
2596
查看次数

在宏中包含#warning以便稍后评估?

可能重复:
是否存在static_warning?

我经常使用#warning通过我的代码分散来标记我需要回到的地方.

喜欢:

#warning The blahblah hasn't been implemented yet; use foo to do so.
Run Code Online (Sandbox Code Playgroud)

我想创建一个宏,可选地不显示与我的笔记特别相关的警告,但显示来自编译器和其他库的实际警告.

就像是:

#ifdef SUPPRESS_NOTES
    #define BUILD_NOTE
#else
    #define BUILD_NOTE #warning Note: msg
#endif
Run Code Online (Sandbox Code Playgroud)

不幸的是,#warning首先得到评估.有什么方法可以做到这一点吗?我使用GCC(MinGW).

c++ macros

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

使用ImageMagick mogrify来调整图像大小

我是ImageMagick的新手.

我编写了以下命令:1)缩放图像,2)用透明空间调整画布大小,3)将缩放后的图像放在画布底部,4)将结果保存在原始文件上.

convert TreeTest.png -resize 144x216 -background none -gravity South -extent 192x288 -set filename:output %t.%e %[filename:output]
Run Code Online (Sandbox Code Playgroud)

有用!并且完全符合我的要求(在查看不同命令的文档15-20分钟后).

令我困惑的是,使用' mogrify'代替' convert' 看似等效的命令没有可辨别的结果.

这是mogrify我正在尝试使用的命令:

mogrify TreeTest.png -resize 144x216 -background none -gravity South -extent 192x288
Run Code Online (Sandbox Code Playgroud)

结果是,据我所知,图像没有变化.我得到零错误消息或警告(使它看起来像命令执行正确),但图像与以前完全相同.

我究竟做错了什么?

imagemagick mogrify

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

QMake moc 文件被名称空间混淆

我有一个如下所示的文件:

#ifndef ENGINE_PLATFORM_AREAEDITOR_H
#define ENGINE_PLATFORM_AREAEDITOR_H

#include <QWidget>
#include "../Widgets/QtSfmlWidget.h"

namespace Engine { namespace World { class Area; } }

//This tell's Qt's qmake to ignore the code between MOC_SKIP_BEGIN and MOC_SKIP_END
// MOC_SKIP_BEGIN
#include "Engine/World/Area.h"
// MOC_SKIP_END

namespace Ui {
class AreaEditor;
}

class AreaEditor : public QWidget
{
    Q_OBJECT

public:
    Engine::World::Area area;

public:
    explicit AreaEditor(QWidget *parent = 0);
    ~AreaEditor();

    //...stuff....

private slots:
    void on_markerTextEdit_textChanged();

    void onDrawAreaScreen(sf::RenderTarget &renderTarget);
    void onDrawAreaResized(const WindowSize &windowSize);

private:
    Ui::AreaEditor *ui;

    //...stuff....
};

#endif //ENGINE_PLATFORM_AREAEDITOR_H
Run Code Online (Sandbox Code Playgroud)

然而,当Qt生成_moc文件时,它错误地认为“AreaEditor”位于“Engine”命名空间中,从而导致编译失败。 …

qt qmake moc qt5

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