在 QTabWidget 中添加图表
add chart in QTabWidget
我想从文本文件中读取数据并在 tabWidget
(tab1) 中添加数字图表
但是在显示时,新的小部件被打开了,我该如何解决这个问题?
void mainWindow::readfile(){
QFile config(":/new/prefix1/3.txt");
config.open(QIODevice::ReadOnly);
if(config.isOpen()){
QTextStream stream(&config);
while (!stream.atEnd()){
line = stream.readLine().split('\t');
//qDebug()<<line;
bool allOk(true);
bool ok;
for (int x = 0; x <= line.count()-1 && allOk; x++) {
val.append(line.at(x).toInt(&ok));
allOk &= ok;
}
}
}
else
qDebug()<<"not opened";
ui->stackedWidget->setCurrentIndex(8);
on_ecg_destroyed();
}
void mainWindow::on_ecg_destroyed()
{
QLineSeries *series = new QLineSeries();
for(int y=0;y<288;y++)
series->append(y,val[y]);
QChart *chart = new QChart();
chart->legend()->hide();
chart->addSeries(series);
chart->createDefaultAxes();
chart->setTitle("line chart");
QChartView *chartView = new QChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing);
setCentralWidget(chartView);
resize(400, 300);
show();
}
我使用 QStackWidget
来定义页面,在其中一个(页面)中,我使用 QTabWidget
和四个选项卡,我想在选项卡 1 中创建一个图表。
QTabWidget
位于 QStackWidget
索引 8,
阅读文件后,在 tab1
.
中显示第 8 页的图表
在您的代码中您需要添加 chartview
以更正 QTabWidget
的 Tab,您可以创建一个布局,将 chartview
添加到创建的布局,然后将 tab1 布局设置为该布局新布局:
QChart *chart = new QChart();
chart->legend()->hide();
chart->addSeries(series);
chart->createDefaultAxes();
chart->setTitle("line chart");
QChartView *chartView = new QChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing);
// create layout
QGridLayout layout;
layout.addWidget(chartView);
this->ui->tab1->setLayout(&layout);
// position view to chartview
this->ui->stackedWidget->setCurrentIndex(8);
this->ui->tabWidget->setCurrentIndex(this->ui->tabWidget->indexOf(this->ui->tab1));
我想从文本文件中读取数据并在 tabWidget
(tab1) 中添加数字图表
但是在显示时,新的小部件被打开了,我该如何解决这个问题?
void mainWindow::readfile(){
QFile config(":/new/prefix1/3.txt");
config.open(QIODevice::ReadOnly);
if(config.isOpen()){
QTextStream stream(&config);
while (!stream.atEnd()){
line = stream.readLine().split('\t');
//qDebug()<<line;
bool allOk(true);
bool ok;
for (int x = 0; x <= line.count()-1 && allOk; x++) {
val.append(line.at(x).toInt(&ok));
allOk &= ok;
}
}
}
else
qDebug()<<"not opened";
ui->stackedWidget->setCurrentIndex(8);
on_ecg_destroyed();
}
void mainWindow::on_ecg_destroyed()
{
QLineSeries *series = new QLineSeries();
for(int y=0;y<288;y++)
series->append(y,val[y]);
QChart *chart = new QChart();
chart->legend()->hide();
chart->addSeries(series);
chart->createDefaultAxes();
chart->setTitle("line chart");
QChartView *chartView = new QChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing);
setCentralWidget(chartView);
resize(400, 300);
show();
}
我使用 QStackWidget
来定义页面,在其中一个(页面)中,我使用 QTabWidget
和四个选项卡,我想在选项卡 1 中创建一个图表。
QTabWidget
位于 QStackWidget
索引 8,
阅读文件后,在 tab1
.
在您的代码中您需要添加 chartview
以更正 QTabWidget
的 Tab,您可以创建一个布局,将 chartview
添加到创建的布局,然后将 tab1 布局设置为该布局新布局:
QChart *chart = new QChart();
chart->legend()->hide();
chart->addSeries(series);
chart->createDefaultAxes();
chart->setTitle("line chart");
QChartView *chartView = new QChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing);
// create layout
QGridLayout layout;
layout.addWidget(chartView);
this->ui->tab1->setLayout(&layout);
// position view to chartview
this->ui->stackedWidget->setCurrentIndex(8);
this->ui->tabWidget->setCurrentIndex(this->ui->tabWidget->indexOf(this->ui->tab1));