mainwindow-关于qt问题,拜托各位帮忙注释一下

问题描述

关于qt问题,拜托各位帮忙注释一下

void MainWindow::SimpleDemo()
{

QTime t;
t=QTime::currentTime();
qsrand(t.msec()+t.second()*1000);
n=qrand()%50+5;
SimpleDemo(ui->qCustomPlot,tempnum,n);
}

void MainWindow::SimpleDemo(QCustomPlot *CustomPlot,double tempnum[10],int i)
{
QVector temp(10);
QVector temp1(10);

for(int i=8;i>=0;i--)
{
tempnum[i+1]=tempnum[i];
}
tempnum[0]=n;
for(int i=0;i<10;i++)
{

   temp[i] = i;
   temp1[i] =tempnum[i];

}
CustomPlot->addGraph();
CustomPlot->graph(0)->setPen(QPen(Qt::red));
CustomPlot->graph(0)->setData(temp,temp1);

CustomPlot->xAxis->setLabel("time");
CustomPlot->yAxis->setLabel("temp/shidu");

CustomPlot->xAxis->setRange(0,11);
CustomPlot->yAxis->setRange(0,100);
CustomPlot->replot();
}

解决方案

QCustomPlot是Qt中使用的一个用来画曲线图、趋势图、坐标图、柱状图等类似二维图的库,可在自己的项目中直接使用两个源文件,或预先编译成库。

void MainWindow::SimpleDemo()
{
QTime t;
t=QTime::currentTime();
qsrand(t.msec()+t.second()*1000);
n=qrand()%50+5;   //从本函数开始到现在,随机产生n,看起来是画图的数据量,但是根据后面,这个数其实没有用
SimpleDemo(ui->qCustomPlot,tempnum,n);   //调用实际画图函数.tempnum是作为画图用的数据.不是在这些代码中产生的,应该是外面带进来的
}
void MainWindow::SimpleDemo(QCustomPlot *CustomPlot,double tempnum[10],int i)
{
QVector temp(10);
QVector temp1(10);
for(int i=8;i>=0;i--)
{
tempnum[i+1]=tempnum[i];
}
tempnum[0]=n;    //本函数,这里以上的都是在准备要画图的数据.在数组的最前面插入总数据量.(应该是控件要求)
for(int i=0;i<10;i++)
{
   temp[i] = i;
   temp1[i] =tempnum[i];
}                        //将画图的数据整理在固定的数组里面去(应该是为了防止意外改动数据其他数据操作对此干扰等)
CustomPlot->addGraph();                    //开始画图
CustomPlot->graph(0)->setPen(QPen(Qt::red)); //设置图的画笔
CustomPlot->graph(0)->setData(temp,temp1); //设置图的数据
CustomPlot->xAxis->setLabel("time");               //设置x坐标的单位
CustomPlot->yAxis->setLabel("temp/shidu");    //设置y坐标的单位
CustomPlot->xAxis->setRange(0,11);                  //设置x坐标的取值范围
CustomPlot->yAxis->setRange(0,100);               //设置y坐标的取值范围
CustomPlot->replot();                                          //画图
}

解决方案二:

源文件如下

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QVector>
#include <QTimer>
#include <QTime>
//#include <time.h>
//#include "qcustomplot.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
   ui->setupUi(this);
   for(int i=0;i<10;i++)
   {
       tempnum[i] = 0;
   }
   n=0;
   QTimer *timer = new QTimer(this);
   timer->start(1000);
   connect(timer,SIGNAL(timeout()),this,SLOT(SimpleDemo()));
}

MainWindow::~MainWindow()
{
   delete ui;
}

void MainWindow::SimpleDemo()
{

   QTime t;
   t=QTime::currentTime();
   qsrand(t.msec()+t.second()*1000);
   n=qrand()%50+5;
   SimpleDemo(ui->qCustomPlot,tempnum,n);
}

void MainWindow::SimpleDemo(QCustomPlot *CustomPlot,double tempnum[10],int i)
{
   QVector<double> temp(10);
   QVector<double> temp1(10);

   for(int i=8;i>=0;i--)
   {
       tempnum[i+1]=tempnum[i];
   }
   tempnum[0]=n;
   for(int i=0;i<10;i++)
   {

       temp[i] = i;
       temp1[i] =tempnum[i];
   }
   CustomPlot->addGraph();
   CustomPlot->graph(0)->setPen(QPen(Qt::red));
   CustomPlot->graph(0)->setData(temp,temp1);

   CustomPlot->xAxis->setLabel("time");
   CustomPlot->yAxis->setLabel("temp/shidu");

   CustomPlot->xAxis->setRange(0,11);
   CustomPlot->yAxis->setRange(0,100);
   CustomPlot->replot();
}

头文件如下

 #ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include "qcustomplot.h"
#include <QVector>
namespace Ui {
   class MainWindow;
}

class MainWindow : public QMainWindow
{
   Q_OBJECT

public:
   double tempnum[10];
   int n;
   explicit MainWindow(QWidget *parent = 0);
   ~MainWindow();
  void SimpleDemo(QCustomPlot *customPlot,double tempnum[10],int i);
public slots:
   void SimpleDemo();
private:
   Ui::MainWindow *ui;

};
#endif // MAINWINDOW_H

解决方案三:

请问会不会遇到执行ui->qCustomPlot时就提示ui中没有成员变量qCustomPlot的情况呢?我遇到这种情况,想知道怎么解决

时间: 2025-01-27 02:25:57

mainwindow-关于qt问题,拜托各位帮忙注释一下的相关文章

webbrowser-菜鸟~~~~求帮忙帮忙注释

问题描述 菜鸟~~~~求帮忙帮忙注释 麻烦大神帮忙备注下注释哈,网上找的代码不懂看 拜托!!! TabPage AddTab() { TabPage page = null; // 从后向前找连续空白页面的最左边那个空白页 for (int i=tab.TabPages.Count-2; i>=0; i--) { TabPage p = tab.TabPages[i]; if (p.Text == BLANK_URL && string.IsNullOrEmpty((p.Tag as

关于那个长整数的加法的代码,能不能帮忙注释一下每句的作用

问题描述 关于那个长整数的加法的代码,能不能帮忙注释一下每句的作用 #include #include #include typedef struct node{ int e; struct node *next; struct node *prir;} node;main(){ node *num1*num2*sum; node *create(node *n); int output(node *n); node *add_Num(node *n1node *n2); num1=(node

代码审查-求帮忙注释下汇编程序代码

问题描述 求帮忙注释下汇编程序代码 len equ 10.model small.stack 100h .datainput_msg db 0dh0ah'Input Number ' Num_no db '00 (0-255):$' no_str db 'Nothing NO ODD NUMBER !''$'buf db 404 dup (0)input_data db 10 dup (0)result_str db 0dh0ah'The minimum odd number is $'firs

c语言-求大神帮忙注释,非常感谢

问题描述 求大神帮忙注释,非常感谢 #include int sushu(int n) { for(int i=2;i<n;i++) if(n%i==0) return 0; return 1; } int main() { int n; scanf("%d",&n); while(n!=0){ if(n%2==0){ for(int i=2;i<n;i++){ if(sushu(i)==1&&sushu(n-i)==1){ printf("

c语言-急!!求大神能帮忙注释一个C语言编译器的程序。大概说一下程序的流程和框架。

问题描述 急!!求大神能帮忙注释一个C语言编译器的程序.大概说一下程序的流程和框架. 谢谢!灰常感谢~~~~留邮箱发代码~~~~程序目的是完成词法分析.语法分析.语义分析等功能,并生成某种机器上的目标代码(汇编语言)或中间代码(四元式). 解决方案 不懂-程序目的是完成词法分析.语法分析.语义分析等功能, 解决方案二: 363581806@qq.com 尽量试试,刚刚做完编译原理实验,应该能看懂一点-- 解决方案三: 906254242@qq.com我来.

初学者c语言动态汉诺塔帮忙注释

问题描述 初学者c语言动态汉诺塔帮忙注释 #include #include #define N 1000 void gotoxy(int x, int y); // 声明gotoxy函数 void colorxy(int x, int y); //声明colorxy函数 void hanoi(int n,char a,char b,char c); //声明hanoi函数 void move(int n,char a,char b); //声明move函数 void Print(); //声明

安装-帮忙注释一下,谢谢了 23333

问题描述 帮忙注释一下,谢谢了 23333 //apk安装 String name = apkInfos.get(pos).packageName; Intent intent = pm.getLaunchIntentForPackage(name); if (intent == null){ Log.d(tag, "can not get intent: " + name); return; } ApkDialog.this.dismiss(); startActivity(inte

xpath-求大神帮忙注释一下,看不懂

问题描述 求大神帮忙注释一下,看不懂 public String getMarketOrderType(String pMarket) { String xpath = DOUBLE_LEADING_SLASH + "HKSPOEPINT001"+ DOUBLE_LEADING_SLASH + "value"; return pathResolve(xpath).get(pMarket+"-order-type"); } 解决方案 public

iOS 简单代码 求大神帮忙注释下 跪谢

问题描述 iOS 简单代码 求大神帮忙注释下 跪谢 //1 [self.navigationController popViewControllerAnimated:YES] //2 -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { id objVC = [segue destinationViewController];// if([objVC isKindOfClass:[SecendViewContr