小编Kel*_*inS的帖子

QPushButton和QToolButton之间的区别

我是新来的Qt之间的差异QPushButton,并QToolButton没有那么清晰.

我知道a QToolButton通常用于a QToolBar,它通常只显示一个图标,没有文字,但我不太明白两者之间的主要区别.

它有什么更大的区别吗?我QPushButton应该何时使用,何时使用QToolButton

我想知道这个使用最合适的按钮,我需要执行一些GUI测试,也许它可能是相关的.

c++ qt qpushbutton qtoolbutton

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

qFuzzyCompare如何在Qt中工作

有什么区别:

if( a == b )
Run Code Online (Sandbox Code Playgroud)

if( qFuzzyCompare(a, b) )
Run Code Online (Sandbox Code Playgroud)

假设变量a和b是:

a = 1234.5678
b = 1234.5678
Run Code Online (Sandbox Code Playgroud)

注意:我问,因为我在比较Qt中的双打时遇到了麻烦,我想知道它是如何qFuzzyCompare工作的.

c++ qt

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

exclude 指令如何在 go.mod 文件中工作?

新的 Go 1.11 版本引入了非常棒的模块概念。

文档中它说有四个指令可以在go.mod文件中使用:module, require, exclude, replace.

它还解释说:

exclude 和 replace 指令仅在当前(“main”)模块上运行。构建主模块时,将忽略主模块以外的模块中的 exclude 和 replace 指令。因此,replace 和 exclude 语句允许主模块完全控制自己的构建,而不受依赖项的完全控制。

但我仍然不明白该exclude指令是如何工作的。

有人可以向我解释该exclude指令是如何工作的,如果可能,请举例说明何时使用它?

go

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

使用抽象类时如何正确删除指针

假设我有以下类和对象:

#include <iostream>

class Animal
{
public:
    virtual void makeNoise() = 0;

    void eat()
    {
        std::cout << "Eating..." << "\n";
    }

    void sleep()
    {
        std::cout << "Sleeping..." << "\n";
    }
};

class Cat: public Animal
{
public:
    void makeNoise()
    {
        std::cout << "Miow..." << "\n";
    }
};

class Cow: public Animal
{
public:
    void makeNoise()
    {
        std::cout << "Mooo..." << "\n";
    }
};

int main()
{
    Animal *animal;
    Cat *cat = new Cat();
    Cow *cow = new Cow();

    animal = …
Run Code Online (Sandbox Code Playgroud)

c++

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

将小部件添加到QTabWidget中

我可以在QTabWidget中添加一些像QLabelQPushButton这样的小部件吗?

实际上,我想做这样的事情: 在此输入图像描述

我正在使用C++和Qt.

谢谢

c++ qt qlabel qpushbutton qtabwidget

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

如何在 QTabWidget Qt 中展开选项卡

我有一个QTabWidget这样的:

在此处输入图片说明

但我想扩展选项卡以“填充”整个小部件宽度,如下所示:

在此处输入图片说明

我怎样才能做到这一点?

我正在使用Qt 5.3.2Qt Creator 3.2.1


更新

我尝试使用该setExpanding功能:

ui->myTabWidget->tabBar()->setExpanding(true);
Run Code Online (Sandbox Code Playgroud)

但它没有用。

c++ qt qtabwidget

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

如何删除 QTabWidget 的“填充”?

我有QTabWidget一个QTableWidget内部的,如下面的例子:

在此处输入图片说明

但是它在QTabWidget(图中标记为红色)中有一个“padding”(至少我认为是padding )。

如何删除它或扩展 QTableWidget 以填充 QTabWidget 区域?

我正在使用 Qt 5.3。

c++ qt qtablewidget qtabwidget

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

将 python、numpy 和 scipy 代码转换为 C++ 兼容代码?

我有一段代码使用了C++numpy中的多个函数,scipy我需要在 C++ 中使用它们,但我对 C++ 的了解太有限,无法将此代码转换为这种语言。

我应该需要什么 C++ 函数才能有这样的东西:

import numpy as np
from scipy.integrate import quad
from scipy.optimize import minimize

minor = 2.23
major = 3.05
encoderdistance = 2.53141952655
print minimize(lambda x: abs(quad(func, 0, x)[0] - encoderdistance), 1).x
min = 90-((180/np.pi) * np.arctan(((np.tan(minimize(lambda x: abs(quad(func, 0, x)[0] - encoderdistance), 1).x))*minor)/major))
print min
Run Code Online (Sandbox Code Playgroud)

谢谢!

c++ python math numpy scipy

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

令人讨厌的错误消息:无法合并以前的GCDA文件

问题

我正在使用以下标志来生成我的Qt应用程序(.pro文件)的代码覆盖率:

QMAKE_CXXFLAGS += --coverage
QMAKE_LFLAGS += --coverage
Run Code Online (Sandbox Code Playgroud)

代码覆盖率正确生成,问题是,如果我只想运行一个测试函数/类(并且已经创建了GCDA文件),则会收到以下错误消息:

profiling: /Users/user/.../build-myapp/myclass.gcda: cannot merge previous GCDA file: corrupt arc tag (0x00000000)
Run Code Online (Sandbox Code Playgroud)

请注意该错误消息显示每个GCDA文件。另外,请注意,它似乎并没有影响测试用例。


解决方法

正如解释在这里,它“ 是一个构建工具无法合并当前结果到现有.gcda覆盖率文件的结果 ”。正如问题中回答的那样,一种选择是在运行测试之前删除GCDA文件。例如,通过在构建阶段添加以下命令:

find . -name "*.gcda" -print0 | xargs -0 rm
Run Code Online (Sandbox Code Playgroud)

问题

我的问题是,我不想每次运行测试用例时都删除旧的GCDA文件。由于我只运行一个测试函数/类,因此我想保持旧的GCDA文件不变,并且仅合并与当前类相关的GCDA文件。正如我手动检查的那样,它已经完成了,因为仅更新了当前类的coverage,而旧的coverage保持不变。

因此,是否有一条命令可以忽略(不显示)与GCDA合并问题有关的错误消息?甚至更好的是仅更新与当前测试类相关的GCDA文件的命令?

注意:我在使用Clang的macOS Sierra上使用Qt 5.3.2。


相关问题

c++ qt code-coverage

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

QwtPlotBarChart - 如何获得匹配条形中点的标签

QwtPlotBarChart用来绘制直方图.我已经设置了图表,以便条形之间没有间距,我的xBottom轴具有实际的数据范围.

样品在图表上使用a QVector设置QPointF,x值对应于箱的中点.

一个QwtPlotPicker盘旋在酒吧表明,他们开始并在实际开始和垃圾箱的两端结束.

但是,我无法获得绘制标签的刻度线,以便沿x轴在正确的位置显示.我正在使用自定义scaledraw,类似于distrowatch示例.我还有一些参数,即数据范围的最小值和bin大小.我的标签索引代码如下所示:

virtual QwtText label( double value ) const
{
    QwtText lbl;

    //const int index = qRound( value );
    const int index = (int)(value-_min_val)/_bin_size;
    if ( index >= 0 && index < d_labels.size() )
    {
        lbl = d_labels[ index ];
    }

    return lbl;
}
Run Code Online (Sandbox Code Playgroud)

这似乎没问题; 我的标签显示每个箱子的最小值和最大值以及几乎在正确的位置.我试图设置滴答位置如下:

QwtScaleDiv div = _plot->axisScaleDiv(QwtPlot::xBottom);
div.setTicks(QwtScaleDiv::MajorTick, x_data.toList());
_plot->setAxisScaleDiv(QwtPlot::xBottom, div);
Run Code Online (Sandbox Code Playgroud)

x_data是用于绘制数据的bin中点的向量.轴范围使用以下方式设置:

double half_bin = bin_size / 2.0;
_plot->setAxisScale(QwtPlot::xBottom, x_data.first() - …
Run Code Online (Sandbox Code Playgroud)

c++ qt qwt

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