Gremlin92
@Gremlin92
Целеустремленный

Проблема с символами в qtablewidget?

3аполняю таблицу 3начениями, ра3 от ра3у часть английских слов вводится, а сейчас как на картинке
#pragma once

#include <ctime>
#include <cstring>
#pragma warning(disable : 4996)
class Task
{
public:
	int id;
	char* task;
	int parentTask;
	char* executor;
	int idExecutor;
	tm* dateStart;
	tm* dateDeathLine;
	char* status;
	char* oldtask;
	Task();
	void AddTask(char* task_, int parentTask_, char* executor_,
		int idExecutor_, tm* dateDeathLine_);
	void DeleteTask(int num);
	~Task();
};
#include "Task.h"

Task::Task()
{
	task = new char[1024];
	executor = new char[256];
	status = new char[64];
	oldtask = new char[2048];
	dateDeathLine = new tm();
	dateStart = new tm();
};


vector<vector<string>> v;
    vector<string> tmp;
    char* date_string = new char[50];
    for (int i = 0; i < db.vTask.size(); i++)
    {
        tmp.push_back(to_string(db.vTask[i].id));
        tmp.push_back(db.vTask[i].task);
        tmp.push_back(to_string(db.vTask[i].parentTask));
        tmp.push_back(db.vTask[i].executor);
        strftime(date_string, 50, " %Y-%m-%d", db.vTask[i].dateDeathLine);
        tmp.push_back(date_string);
        strftime(date_string, 50, "%Y-%m-%d", db.vTask[i].dateStart);
        tmp.push_back(date_string);
        tmp.push_back(db.vTask[i].status);
        tmp.push_back(db.vTask[i].oldtask);
        v.push_back(tmp);
        tmp.clear();
    }
    for(int i=0;i<db.numRow;i++)
        for (int j = 0; j < db.numCol; j++)
        {
            qstr = QString::fromStdString(v[i][j]);
            table.setItem(i, j, new QTableWidgetItem(qstr));
        
        }

608d4bf44cd29439194375.png
  • Вопрос задан
  • 18 просмотров
Решения вопроса 1
Gremlin92
@Gremlin92 Автор вопроса
Целеустремленный
Тупанул надо было копировать строки, а не присваивать
Task* task_ = new Task();
    for (int i = 0; i < nrows; i++)
    {
        task_->id = atoi(PQgetvalue(res, i, 0));
        strcpy(task_->task , PQgetvalue(res, i, 1));
        task_->parentTask = atoi(PQgetvalue(res, i, 2));
        strcpy(task_->executor , PQgetvalue(res, i, 3));
        char* ddl = PQgetvalue(res, i, 4);
        ddl[4] = ddl[7] = '\0';
        task_->dateDeathLine->tm_year = atoi(&ddl[0]) - 1900;
        task_->dateDeathLine->tm_mon = atoi(&ddl[5]) - 1;
        task_->dateDeathLine->tm_mday = atoi(&ddl[8]);
        ddl = PQgetvalue(res, i, 5);
        ddl[4] = ddl[7] = '\0';
        task_->dateStart->tm_year = atoi(&ddl[0]) - 1900;
        task_->dateStart->tm_mon = atoi(&ddl[5]) - 1;
        task_->dateStart->tm_mday = atoi(&ddl[8]);
        strcpy(task_->status , PQgetvalue(res, i, 6));

        strcpy(task_->oldtask , PQgetvalue(res, i, 7));
        cout << " Id: " << task_->id;
        cout << " Task: " << task_->task;
        cout << " Parent: " << task_->parentTask;
        cout << " Executor: " << task_->executor;

        char* date_string = new char[50];
        strftime(date_string, 50, " %Y-%m-%d", task_->dateDeathLine);
        cout << " DeathLine: " << date_string;

        strftime(date_string, 50, "%Y-%m-%d", task_->dateStart);
        cout << " Start: " << date_string;
        cout << " Status: " << task_->status;
        cout << " Oldtask: " << task_->oldtask << endl;
        vTask.push_back(task_);
    }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы