写一个QT程序:定时器1秒记一个数,10秒后停止,记多少个数,增加多少个tableview
时间: 2023-12-13 20:05:59 浏览: 85
下面是一个简单的 QT 程序,它可以实现你的要求:
```cpp
#include <QtWidgets/QApplication>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QVBoxLayout>
#include <QtCore/QTimer>
#include <QtWidgets/QTableWidget>
#include <QtWidgets/QLabel>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QMainWindow mainWindow;
// 创建垂直布局
QVBoxLayout *layout = new QVBoxLayout();
// 创建标签,用于显示记录数字的总数
QLabel *countLabel = new QLabel("0");
layout->addWidget(countLabel);
// 创建表格
QTableWidget *tableWidget = new QTableWidget();
tableWidget->setColumnCount(1);
layout->addWidget(tableWidget);
// 创建定时器,每秒钟记录一个数字,并且在10秒钟后停止
int count = 0;
QTimer *timer = new QTimer(&mainWindow);
timer->start(1000);
QObject::connect(timer, &QTimer::timeout, [&count, countLabel, tableWidget, timer]() {
// 记录数字
count++;
countLabel->setText(QString::number(count));
// 如果时间超过了10秒钟,停止定时器
if (count >= 10) {
timer->stop();
}
// 如果时间不超过10秒钟,把数字添加到表格中
if (count <= 10) {
tableWidget->insertRow(tableWidget->rowCount());
tableWidget->setItem(tableWidget->rowCount() - 1, 0, new QTableWidgetItem(QString::number(count)));
}
});
// 把布局添加到主窗口中
QWidget *centralWidget = new QWidget(&mainWindow);
centralWidget->setLayout(layout);
mainWindow.setCentralWidget(centralWidget);
// 显示主窗口
mainWindow.show();
// 运行 QT 程序
return app.exec();
}
```
这个程序创建了一个垂直布局,其中包含一个标签和一个表格。程序使用定时器每秒钟记录一个数字,并在10秒钟后停止。程序还在每次记录数字时将数字添加到表格中。
阅读全文