qt 中如何向QTableWidget里大量添加数据?
来源:互联网 发布:淘宝葡萄酒 编辑:程序博客网 时间:2024/05/17 11:06
实验说明:通过一个按钮,选择一张图片,将图片添加到表格里,并且添加1000条该数据
项目文件:
1 main.cpp
#include <QtGui/QApplication>#include "mainwindow.h"int main(int argc, char *argv[]){ QApplication a(argc, argv); MainWindow w; w.show(); return a.exec();}2 mainwindow.h
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QtGui>#include <QtCore>#include "tablethread.h"namespace Ui { class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); int myrow;private slots: void getPathSlot(QString); void on_AddData_clicked();private: Ui::MainWindow *ui; TableThread *tablethread; QTableWidget *table; QString path;};#endif // MAINWINDOW_H3 mainwindow.cpp
#include "mainwindow.h"#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); tablethread = new TableThread; table=new QTableWidget; table->setColumnCount(1); QStringList header; header<<tr("File Path"); table->setHorizontalHeaderLabels(header); table->horizontalHeader()->resizeSection(0,300); ui->scrollArea->setWidget(table); connect(tablethread,SIGNAL(getPath(QString)),this,SLOT(getPathSlot(QString)));}MainWindow::~MainWindow(){ delete ui;}void MainWindow::getPathSlot(QString path){ table->setRowCount(table->rowCount()+1); QTableWidgetItem *item=new QTableWidgetItem(path); item->setCheckState(Qt::Unchecked); item->setIcon(QIcon(path)); table->setItem(table->rowCount()-1,0,item);}void MainWindow::on_AddData_clicked(){ QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"), "./", tr("Images (*.png *.xpm *.jpg)")); tablethread->getFile(fileName); tablethread->start();}4 tablethread.h
#ifndef TABLETHREAD_H#define TABLETHREAD_H#include <QThread>#include <QtGui>#include <QtCore>class TableThread : public QThread{ Q_OBJECTpublic: explicit TableThread(QObject *parent = 0); void run(); void getFile(QString); QString mypath; int i; //数据行数signals: void getPath(QString);//自定义信号};#endif // TABLETHREAD_H5 tablethread.cpp
#include "tablethread.h"TableThread::TableThread(QObject *parent) : QThread(parent){ i=0;}void TableThread::run(){ while(i<100) { i++; emit getPath(mypath); msleep(50); }}void TableThread::getFile(QString file){ mypath=file;}
6 运行效果图
0 0
- qt 中如何向QTableWidget里大量添加数据?
- 如何向mysql中插入大量数据
- 如何向SQL中添加数据
- 如何快速向Mysql插入大量数据?
- QT 如何向工具栏中添加漂亮的图标
- 向oracle表中插入大量数据
- Qt中QTableWidget用法
- Xcode 如何向工程里添加 framework
- 如何向android的framework里添加
- c#中向listbox添加大量元素的快速方法
- 如何高效地向Redis插入大量的数据
- 向数据库中添加数据
- Qt中QTableWidget用法总结
- Qt中QTableWidget用法总结
- Qt中QTableWidget用法总结
- Qt中QTableWidget用法总结
- Qt中 QTableWidget用法总结
- Qt中QTableWidget用法总结
- 重定向的一些小记录,个人粗略的不成熟的理解
- Topic Model(主题模型)交流
- 一个十分有趣的字符串算法, 转载留个记号
- CentOS创建本地yum源
- JAVA 复习(Think In Java, 4th) -- Inner Classes - Part1
- qt 中如何向QTableWidget里大量添加数据?
- Hdu2037 - 今年暑假不AC - 贪心算法
- http协议常用请求头与响应头
- Java工具类总结二
- 验证数字为空
- HDU 1385 Minimum Transport Cost(Floyd+打印字典序最小路径)
- Java工作中常用工具类总结一
- 关于在VS2008和VS2010中禁用及卸载Visual Assist X的方法研究
- 【topcoder第一弹】 SRM 144 Div.2 whatTime