gyros'nmaronen
05-05-2006, 08:16
Moin, Moin
Ich bins schon wieder mit meinem Tabellenproblem. Also ich hab jetzt die Copy/Paste-Funktion in Angriff genommen(allerdings erstmal ohne QClipboard, also nur in der Tablle möglich). Kopieren funktioniert ohne Probleme. Aber das Einfügen bereitet mir noch Probleme. Wenn ich den Text einfüge, schreibt er in meine Zellen komische Striche. Manchmal aber auch nicht. Dieses tut er aber auch nur wenn ich in der ersten Spalte den Text einfügen will. Außerdem stürtzt mein Programm ab wenn ich zuviel Text kopieren will. Ich hab mich auch am csv Format orientiert (danke an anda_skoa für den Tip), nur das ich kein "\" benutze sonder "/". Weil er den Backslash als einzelnes Zeichen nicht in den String schreibt.
Meine beiden Fuktionen:
Copy:
void MyMainWindow::copy(void)
{
_text = "";
_text.reserve(20000);
for (int i = 0; i <= _ptable->numCols(); i++)
{
for (int j = 0; j <= _ptable->numRows(); j++)
{
if (_ptable->isSelected(j,i) == TRUE)
{
_text = _text + _ptable->text(j,i) + ";";
}
}
if (_text == "")
continue;
else _text = _text + "/";
}
_text.sqeeze();
_label5->setText(_text);
}
Paste:
void MyMainWindow::paste ( void )
{
int status = 0;
for (int i = _ptable->currentColumn(); i <= _ptable->numCols(); i++)
{
for (int j = _ptable->currentRow(); j <= _ptable->numRows(); j++)
{
for ( int x = status; x <= _text.capacity(); x++ )
{
_ch[x] = _text.at(x);
if (_ch[x] == ";" || _ch[x] == "/")
{
status++;
// status= x;
break;
}
_text1 = _text1 + _ch[x];
status= x;
}
if (_ch[x] == "/")
{
status--;
break;
}
status++;
_ptable->setText( j, i, _text1);
_text1 = "";
}
status++;
}
}
Ich weiß ich geh euch ganz schön aufn Sack damit, aber ich steh noch ziemlich am Anfang was die Programmierung angeht.
Danke für eure Hilfe und Geduld.
MFG gyros
Ich bins schon wieder mit meinem Tabellenproblem. Also ich hab jetzt die Copy/Paste-Funktion in Angriff genommen(allerdings erstmal ohne QClipboard, also nur in der Tablle möglich). Kopieren funktioniert ohne Probleme. Aber das Einfügen bereitet mir noch Probleme. Wenn ich den Text einfüge, schreibt er in meine Zellen komische Striche. Manchmal aber auch nicht. Dieses tut er aber auch nur wenn ich in der ersten Spalte den Text einfügen will. Außerdem stürtzt mein Programm ab wenn ich zuviel Text kopieren will. Ich hab mich auch am csv Format orientiert (danke an anda_skoa für den Tip), nur das ich kein "\" benutze sonder "/". Weil er den Backslash als einzelnes Zeichen nicht in den String schreibt.
Meine beiden Fuktionen:
Copy:
void MyMainWindow::copy(void)
{
_text = "";
_text.reserve(20000);
for (int i = 0; i <= _ptable->numCols(); i++)
{
for (int j = 0; j <= _ptable->numRows(); j++)
{
if (_ptable->isSelected(j,i) == TRUE)
{
_text = _text + _ptable->text(j,i) + ";";
}
}
if (_text == "")
continue;
else _text = _text + "/";
}
_text.sqeeze();
_label5->setText(_text);
}
Paste:
void MyMainWindow::paste ( void )
{
int status = 0;
for (int i = _ptable->currentColumn(); i <= _ptable->numCols(); i++)
{
for (int j = _ptable->currentRow(); j <= _ptable->numRows(); j++)
{
for ( int x = status; x <= _text.capacity(); x++ )
{
_ch[x] = _text.at(x);
if (_ch[x] == ";" || _ch[x] == "/")
{
status++;
// status= x;
break;
}
_text1 = _text1 + _ch[x];
status= x;
}
if (_ch[x] == "/")
{
status--;
break;
}
status++;
_ptable->setText( j, i, _text1);
_text1 = "";
}
status++;
}
}
Ich weiß ich geh euch ganz schön aufn Sack damit, aber ich steh noch ziemlich am Anfang was die Programmierung angeht.
Danke für eure Hilfe und Geduld.
MFG gyros