小编A. *_*ira的帖子

在QChartView的轴系统中获取鼠标坐标

有没有办法在绘图区域上获得鼠标坐标QChartView?优选地,在轴单元中.目标是在绘图上移动鼠标时显示鼠标坐标,以便用户可以测量绘制的对象.

我找不到任何内置函数QChartView,所以我试图QChartView::mouseMoveEvent(QMouseEvent *event)用来尝试计算绘图区域中的结果位置.问题是我无法获得绘图区域坐标系的任何参考.我已经尝试过使用了mapToScene,mapToItem而且mapToParent反过来mapFrom...我可以抓住所有对象试图做到这一点,但无济于事.

我发现这QChartView::chart->childItems()[2]确实是绘图区域,不包括轴和轴标签.然后,我可以调用QChartView::chart->childItems()[2]->setCursor(Qt::CrossCursor)十字形仅出现在绘图区域而不是相邻对象上.但是,我尝试的任何东西似乎都没有正确引用这个对象的坐标系.

c++ qt qtcharts

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

不能包含<QtCharts/QLineSeries>

似乎我找不到一种方法来包含<QtCharts/QLineSeries>在我的标题中,所以Qt知道QLineSeries类.

  • 我添加Qt += charts到我的.pro文件中.
  • 我加入#include <QtCharts/QLineSeries>MainWindow.h
  • 然后我删除.pro.user文件和我已经完成的任何构建.然后重新打开.pro文件以最干净的方式重新配置项目.
  • 最后,我将构建模式设置为Release,通过右键单击项目并选择它并运行它来运行QMake.

我收到消息:

 ...\PlottingCharts\mainwindow.h:14: error: 'QLineSeries' does not name a type
     QLineSeries *series;
     ^
Run Code Online (Sandbox Code Playgroud)

很明显,Qt对QLineSeries一无所知.

作为参考,这些linechartopenglseries示例正常工作.

谁知道我错过了什么?

c++ qt qtcharts

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

如何重新绘制QChart

我想知道如何QChart在添加新点后添加新点QLineSeries. 目标是使用它来显示以高速率(高达400 000点/秒)采集的数据,并在点到达数据包时更新绘图.

这是我一直在研究的测试程序:

主窗口:

class MainWindow : public QMainWindow{
    Q_OBJECT

    QLineSeries *series;
    QChart *chart;
    QChartView *chartView;

    int cnt=0;


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

private slots:
    void on_pB_Start_clicked();

private:
    Ui::MainWindow *ui;
};
Run Code Online (Sandbox Code Playgroud)

MainWindow构造函数:

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){
    ui->setupUi(this);

    series = new QLineSeries();

    chart = new QChart();
    chart->setBackgroundRoundness(0);

    chart->addSeries(series);

 // A bunch of formatting
    chart->setBackgroundVisible(false);
    chart->setMargins(QMargins(0,0,0,0));
    chart->layout()->setContentsMargins(0,0,0,0);
    chart->legend()->hide();
    chart->setPlotAreaBackgroundBrush(QBrush(Qt::black));
    chart->setPlotAreaBackgroundVisible(true);
    chartView = new QChartView(chart);
    ui->gridLayout->addWidget(chartView);

}
Run Code Online (Sandbox Code Playgroud)

还有一个pushButton clicked事件可以为系列添加点数:

void MainWindow::on_pB_Start_clicked(){
    series->append(cnt,qSin(cnt/10));
    cnt++; …
Run Code Online (Sandbox Code Playgroud)

c++ qt qtcharts

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

在C中更改一个字节的4个中间位

我正在尝试更改一个字节的4个中间位以对应另一个字节的高半字节:

假设我们从:

In = 0bABCDEFGH
Out = 0bXXXXXXXX // Some random byte
Run Code Online (Sandbox Code Playgroud)

我想要:

Out = 0bXXABCDXX
Run Code Online (Sandbox Code Playgroud)

留下任何其他位置Out的极端不变.

我怎样才能做到这一点?

注意: 'X'表示任何位,0或1,只是为了区分来自输入的内容.

我得:

(0b00111100 & (IN>>2)) = 0b00ABCD00
Run Code Online (Sandbox Code Playgroud)

,过滤高半字节并使其居中但是接着是什么?我怎么能把它移动到Out

c bit-manipulation

4
推荐指数
2
解决办法
140
查看次数

标签 统计

c++ ×3

qt ×3

qtcharts ×3

bit-manipulation ×1

c ×1