mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QWidget>
#include <QStandardItemModel>
namespace Ui {
class MainWindow;
}
class MainWindow : public QWidget {
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
public:
void start();
void showColor();
private:
Ui::MainWindow *ui;
QStandardItemModel *model;
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
#include <unistd.h>
//#include <thread>
#include <QtConcurrent/QtConcurrent>
MainWindow::MainWindow(QWidget *parent) :
QWidget(parent),
ui(new Ui::MainWindow) {
ui->setupUi(this);
model = new QStandardItemModel(this);
model->setColumnCount(2);
model->setHeaderData(0, Qt::Horizontal, tr("貨品名稱"));
model->setHeaderData(1, Qt::Horizontal, tr("貨品類型"));
ui->tableView->setModel(model);
ui->tableView->setColumnWidth(0, 100);
ui->tableView->setColumnWidth(1, 100);
QList<QStandardItem *> itemrow1{new QStandardItem("aaa"), new QStandardItem("111")};
model->appendRow(itemrow1);
QList<QStandardItem *> itemrow2{new QStandardItem("bbb"), new QStandardItem("222")};
model->appendRow(itemrow2);
QList<QStandardItem *> itemrow3{new QStandardItem("ccc"), new QStandardItem("333")};
model->appendRow(itemrow3);
QList<QStandardItem *> itemrow4{new QStandardItem("ddd"), new QStandardItem("444")};
model->appendRow(itemrow4);
QList<QStandardItem *> itemrow5{new QStandardItem("eee"), new QStandardItem("555")};
model->appendRow(itemrow5);
QList<QStandardItem *> itemrow6{new QStandardItem("fff"), new QStandardItem("666")};
model->appendRow(itemrow6);
QList<QStandardItem *> itemrow7{new QStandardItem("ggg"), new QStandardItem("777")};
model->appendRow(itemrow7);
QList<QStandardItem *> itemrow8{new QStandardItem("hhh"), new QStandardItem("888")};
model->appendRow(itemrow8);
}
void MainWindow::start() {
QtConcurrent::run(this, &MainWindow::showColor);
}
void MainWindow::showColor() {
while (true) {
for (int i = 0; i < 8; ++i) {
model->item(i, 0)->setBackground(QColor(Qt::green));
model->item(i, 1)->setBackground(QColor(Qt::green));
// sleep(1);
std::this_thread::sleep_for(std::chrono::seconds(1));
qDebug() << "sleep for 1 s";
}
for (int j = 7; j >= 0; --j) {
model->item(j, 0)->setBackground(QColor(Qt::red));
model->item(j, 1)->setBackground(QColor(Qt::red));
// sleep(1);
std::this_thread::sleep_for(std::chrono::seconds(1));
qDebug() << "sleep for 1 s";
}
return;
}
}
MainWindow::~MainWindow() {
delete ui;
}
main.cpp
#include <QApplication>
#include "mainwindow.h"
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
MainWindow window;
window.show();
window.start();
return a.exec();
}