TextEdit, добавление текста |
Здравствуйте, гость ( Вход | Регистрация )
TextEdit, добавление текста |
Antrix |
14.11.2008, 23:47
Сообщение
#1
|
Студент Группа: Новичок Сообщений: 18 Регистрация: 25.9.2008 Пользователь №: 300 Спасибо сказали: 4 раз(а) Репутация: 0 |
Проблемма в следующем:
1. Есть TextEdit_1 2. Есть TextEdit_2 Нужно добавить текст из TextEdit_2 в TextEdit_1. У TextEdit'та есть метод QTextDocument * document () const - получить указатель на документ, но возникает вопрос, а как же теперь добавить полученный QTextDocument к другому TextEdit'ту? Метод void setDocument ( QTextDocument * document ) - не подходит, ибо устанавливает документ, а мне нужно к уже существующему добавить новый. Возможно мне надо каким-то образом QTextDocument рабивать на QString и добавлять построчно void append ( const QString & text ) - ? Подскажите пожалуйста. |
|
|
Litkevich Yuriy |
15.11.2008, 1:22
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
если тебе все скопом надо перенести, то самы простой путь:
если части, то нужно пользоватся либо курсором, либо базовыми еденицами текста |
|
|
Antrix |
15.11.2008, 10:27
Сообщение
#3
|
Студент Группа: Новичок Сообщений: 18 Регистрация: 25.9.2008 Пользователь №: 300 Спасибо сказали: 4 раз(а) Репутация: 0 |
Еще один вопрос: почему когда я создаю функцию void f(QTextDocument); - то компилятор не выдаёт ошибок, а если я создаю слот
public slots: void slot(QTextDocument); - то выдает вот такую ошибку:
Компилятор - visual studio 2005 + qt |
|
|
molchanoviv |
15.11.2008, 12:40
Сообщение
#4
|
Старейший участник Группа: Сомодератор Сообщений: 597 Регистрация: 18.7.2008 Из: Саратов Пользователь №: 238 Спасибо сказали: 41 раз(а) Репутация: 5 |
потому-что slot это ключевое слово для moc
|
|
|
Antrix |
15.11.2008, 13:55
Сообщение
#5
|
Студент Группа: Новичок Сообщений: 18 Регистрация: 25.9.2008 Пользователь №: 300 Спасибо сказали: 4 раз(а) Репутация: 0 |
Нет дело не в том, вот я переименовал слот:
public slots: void test(QTextDocument); Ошибка таже. |
|
|
Antrix |
15.11.2008, 15:16
Сообщение
#6
|
Студент Группа: Новичок Сообщений: 18 Регистрация: 25.9.2008 Пользователь №: 300 Спасибо сказали: 4 раз(а) Репутация: 0 |
А если писать
void test(QTextDocument*); вместо void test(QTextDocument);- то ошибка уже не возникает. Так в чем же дело это баг, или я что то не правильно делаю? |
|
|
Litkevich Yuriy |
15.11.2008, 16:41
Сообщение
#7
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Antrix, я вообще не понял о чем ты. можешь привести объявление класса и реализацию слота?
|
|
|
Antrix |
16.11.2008, 13:11
Сообщение
#8
|
Студент Группа: Новичок Сообщений: 18 Регистрация: 25.9.2008 Пользователь №: 300 Спасибо сказали: 4 раз(а) Репутация: 0 |
Вот объявление класса
Реализация
Ошибка:
Причина редактирования: для длинного кода вместо codebox используйте expand
|
|
|
Litkevich Yuriy |
16.11.2008, 14:02
Сообщение
#9
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Antrix, выкладывай moc_MainWindow.cpp
|
|
|
Antrix |
16.11.2008, 16:50
Сообщение
#10
|
Студент Группа: Новичок Сообщений: 18 Регистрация: 25.9.2008 Пользователь №: 300 Спасибо сказали: 4 раз(а) Репутация: 0 |
Вот:
Раскрывающийся текст /**************************************************************************** ** Meta object code from reading C++ file 'MainWindow.h' ** ** Created: Sun 16. Nov 11:56:19 2008 ** by: The Qt Meta Object Compiler version 59 (Qt 4.4.1) ** ** WARNING! All changes made in this file will be lost! *****************************************************************************/ #include "../../../MainWindow.h" #if !defined(Q_MOC_OUTPUT_REVISION) #error "The header file 'MainWindow.h' doesn't include <QObject>." #elif Q_MOC_OUTPUT_REVISION != 59 #error "This file was generated using the moc from 4.4.1. It" #error "cannot be used with the include files from this version of Qt." #error "(The moc has changed too much.)" #endif QT_BEGIN_MOC_NAMESPACE static const uint qt_meta_data_MainWindow[] = { // content: 1, // revision 0, // classname 0, 0, // classinfo 11, 10, // methods 0, 0, // properties 0, 0, // enums/sets // signals: signature, parameters, type, tag, flags 12, 11, 11, 11, 0x05, 36, 11, 11, 11, 0x05, 54, 11, 11, 11, 0x05, // slots: signature, parameters, type, tag, flags 72, 11, 11, 11, 0x0a, 92, 11, 11, 11, 0x0a, 112, 11, 11, 11, 0x0a, 127, 11, 11, 11, 0x0a, 144, 11, 11, 11, 0x0a, 162, 11, 11, 11, 0x0a, 186, 11, 11, 11, 0x0a, 219, 217, 11, 11, 0x0a, 0 // eod }; static const char qt_meta_stringdata_MainWindow[] = { "MainWindow\0\0sendText(QTextDocument)\0" "sendText(QString)\0sendNick(QString)\0" "slotSetServerMode()\0slotSetClientMode()\0" "slotSendText()\0slotChangeNick()\0" "slotClientError()\0slotTextOutput(QString)\0" "slotTextOutput(QTextDocument*)\0a\0" "test(QTextDocument)\0" }; const QMetaObject MainWindow::staticMetaObject = { { &QMainWindow::staticMetaObject, qt_meta_stringdata_MainWindow, qt_meta_data_MainWindow, 0 } }; const QMetaObject *MainWindow::metaObject() const { return &staticMetaObject; } void *MainWindow::qt_metacast(const char *_clname) { if (!_clname) return 0; if (!strcmp(_clname, qt_meta_stringdata_MainWindow)) return static_cast<void*>(const_cast< MainWindow*>(this)); if (!strcmp(_clname, "Ui::MainWindow")) return static_cast< Ui::MainWindow*>(const_cast< MainWindow*>(this)); return QMainWindow::qt_metacast(_clname); } int MainWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QMainWindow::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: sendText((*reinterpret_cast< const QTextDocument(*)>(_a[1]))); break; case 1: sendText((*reinterpret_cast< const QString(*)>(_a[1]))); break; case 2: sendNick((*reinterpret_cast< QString(*)>(_a[1]))); break; case 3: slotSetServerMode(); break; case 4: slotSetClientMode(); break; case 5: slotSendText(); break; case 6: slotChangeNick(); break; case 7: slotClientError(); break; case 8: slotTextOutput((*reinterpret_cast< QString(*)>(_a[1]))); break; case 9: slotTextOutput((*reinterpret_cast< QTextDocument*(*)>(_a[1]))); break; case 10: test((*reinterpret_cast< QTextDocument(*)>(_a[1]))); break; } _id -= 11; } return _id; } // SIGNAL 0 void MainWindow::sendText(const QTextDocument & _t1) { void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) }; QMetaObject::activate(this, &staticMetaObject, 0, _a); } // SIGNAL 1 void MainWindow::sendText(const QString & _t1) { void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) }; QMetaObject::activate(this, &staticMetaObject, 1, _a); } // SIGNAL 2 void MainWindow::sendNick(QString _t1) { void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) }; QMetaObject::activate(this, &staticMetaObject, 2, _a); } QT_END_MOC_NAMESPACE |
|
|
Текстовая версия | Сейчас: 2.1.2025, 16:44 |