crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

Гость_Alexey_*
сообщение 22.3.2008, 0:39
Сообщение #1





Гости








    


При написании многооконного текстового редактора на Qt столкнулся с проблемой :
У меня 2 класса MainWindow и MdiChild. MdiChild наследует QTextEdit.
В классе MdiChild есть метод
void MdiChild::AllignLeft()
{
  document()->setAlignment(Qt::AlignLeft);
}


Компилятор выдает ошибку :
'setAlignment' : is not a member of 'QTextDocument'

Помогите разобраться почему выскакивает такая ошибка. Я ведь наследую QTextEdit а не QTextDocument , а
setAlignment является членом класса QTextEdit.

Сообщение отредактировал Admin - 22.3.2008, 9:49
Причина редактирования: Не забываем про тэг коде, и правильно выбираем раздел ;)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
ViGOur
  опции профиля:
сообщение 7.10.2008, 13:11
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Выложи исходник, если большой набросай пример воспроизводящий проблему и выложи...
А то маловато информации.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
bugsstring
  опции профиля:
сообщение 7.10.2008, 13:58
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 9
Регистрация: 20.6.2008
Пользователь №: 209

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(ViGOur @ 7.10.2008, 13:11) *
Выложи исходник, если большой набросай пример воспроизводящий проблему и выложи...
А то маловато информации.

класс
#ifndef TEDIT_H
#define TEDIT_H

#include <QWidget>

class QToolBar;
class QAction;
class QTextEdit;

class TEdit : public QWidget
{

    Q_OBJECT
    public:
        TEdit();
        virtual ~TEdit();

    private slots:
        void makeBold();
        void makeItalic();
        void makeUnderline();
        void setAlignLeft();
        void setAlignCenter();
        void setAlignRight();

    private:
        QToolBar *toolBar;

        QAction *textBold;
        QAction *textItalic;
        QAction *textUnderline;
        QAction *textLeft;
        QAction *textCenter;
        QAction *textRight;

        QTextEdit *te;
};

#endif /* TEDIT_H */

имплементация
#include <QtGui>
#include "tedit.h"

TEdit::TEdit()
{
          resize(800,600);
          te = new QTextEdit;
          toolBar = new QToolBar(this);

          textBold = new QAction(QIcon(":images/format_text_bold.png"),tr("B"),this);
          connect(textBold, SIGNAL(triggered()), this, SLOT(makeBold()));

          textItalic = new QAction(QIcon(":images/format_text_italic.png"),tr("I"),this);
          connect(textItalic, SIGNAL(triggered()), this, SLOT(makeItalic()));

          textUnderline = new QAction(QIcon(":images/format_text_underline.png"),tr("U"),this);
          connect(textUnderline, SIGNAL(triggered()), this, SLOT(makeUnderline()));

          textLeft = new QAction(QIcon(":images/format_justify_left.png"),tr("Align Left"),this);
          connect(textLeft, SIGNAL(triggered()), this, SLOT(setAlignLeft()));

          textCenter = new QAction(QIcon(":images/format_justify_center.png"),tr("Align Center"),this);
          connect(textLeft, SIGNAL(triggered()), this, SLOT(setAlignCenter()));

          textRight = new QAction(QIcon(":images/format_justify_right.png"),tr("Align Right"),this);
          connect(textLeft, SIGNAL(triggered()), this, SLOT(setAlignRight()));

          toolBar->addAction(textBold);
          toolBar->addAction(textItalic);
          toolBar->addAction(textUnderline);
          toolBar->addSeparator();
          toolBar->addAction(textLeft);
          toolBar->addAction(textCenter);
          toolBar->addAction(textRight);

          QVBoxLayout *ml = new QVBoxLayout;
          ml->setMargin(1);
          ml->setSpacing(0);
          ml->addWidget(toolBar);
          ml->addWidget(te);
          setLayout(ml);
}
void TEdit::makeBold()
{
          QTextCursor cursor = te->textCursor();
          QTextCharFormat boldFormat;
          if(cursor.charFormat().fontWeight()==QFont::Normal)
          {
              boldFormat.setFontWeight(QFont::Bold);
          }
          else
          {
              boldFormat.setFontWeight(QFont::Normal);
          }
      
          cursor.mergeCharFormat(boldFormat);
}

void TEdit::makeItalic()
{
          QTextCursor cursor = te->textCursor();
          QTextCharFormat italicFormat;
          if(cursor.charFormat().fontItalic()==false)
          {
              italicFormat.setFontItalic(true);
          }
          else
          {
              italicFormat.setFontItalic(false);
          }
          cursor.mergeCharFormat(italicFormat);
}

void TEdit::makeUnderline()
{
          QTextCursor cursor = te->textCursor();
          QTextCharFormat underlineFormat;
          if(cursor.charFormat().fontUnderline()==false)
          {
              underlineFormat.setFontUnderline(true);
          }
          else
          {
              underlineFormat.setFontUnderline(false);
          }
          cursor.mergeCharFormat(underlineFormat);
}

void TEdit::setAlignLeft()
{
          te->setAlignment(Qt::AlignLeft);
/*or
          QTextCursor cursor = te->textCursor();
          QTextBlockFormat blockFmt;
          if(!cursor.hasSelection())
          {
              cursor.select(QTextCursor::BlockUnderCursor);
          }
          blockFmt.setAlignment(Qt::AlignLeft);
          cursor.mergeBlockFormat(blockFmt);
*/
}

void TEdit::setAlignRight()
{
          te->setAlignment(Qt::AlignRight);
/*or
          QTextCursor cursor = te->textCursor();
          QTextBlockFormat blockFmt;
          if(!cursor.hasSelection())
          {
              cursor.select(QTextCursor::BlockUnderCursor);
          }
          blockFmt.setAlignment(Qt::AlignRight);
          cursor.mergeBlockFormat(blockFmt);
*/
}

void TEdit::setAlignCenter()
{
          te->setAlignment(Qt::AlignCenter);
/*or
          QTextCursor cursor = te->textCursor();
          QTextBlockFormat blockFmt;
          if(!cursor.hasSelection())
          {
              cursor.select(QTextCursor::BlockUnderCursor);
          }
          blockFmt.setAlignment(Qt::AlignCenter);
          cursor.mergeBlockFormat(blockFmt);
*/
}

TEdit::~TEdit(){}



IDE - eclipse
Прикрепленные файлы
Прикрепленный файл  texteditor.tar.gz ( 9.98 килобайт ) Кол-во скачиваний: 134
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- Alexey   Выравнивание текста   22.3.2008, 0:39
- - Litkevich Yuriy   хм, по моему ты форум перепутал,здесь ни слова о ...   22.3.2008, 0:59
- - Admin   Просто в классе QTextEdit есть setAlignment, а во...   22.3.2008, 10:13
- - Litkevich Yuriy   ЦитатаПомогите разобраться почему выскакивает така...   22.3.2008, 10:45
- - Alexey   Исходник CODE//mdichild.h #ifndef MDICHILD_H #de...   22.3.2008, 13:29
- - Litkevich Yuriy   есть такие строки в mdichild.cpp: connect(tex...   22.3.2008, 13:48
- - Alexey   это я пытался объявить в классе mdichild QTextEdit...   22.3.2008, 13:52
- - Litkevich Yuriy   посмотри объявление: QTextDocument * QTextEdit...   22.3.2008, 14:04
- - Litkevich Yuriy   я сделал в этом файле так: void MdiChild:...   22.3.2008, 14:11
|- - Alexey   О, теперь и у меня выравнивает.Спасибо за помощ.   22.3.2008, 20:08
- - bugsstring   Сорри, народ... нифига не работает, по кнопке выра...   7.10.2008, 9:47
- - ViGOur   Посмотри в дебаге, ты попадаешь в слоты?   7.10.2008, 9:49
|- - bugsstring   Цитата(ViGOur @ 7.10.2008, 9:49) Посмотри...   7.10.2008, 12:55
- - ViGOur   Выложи исходник, если большой набросай пример восп...   7.10.2008, 13:11
|- - bugsstring   Цитата(ViGOur @ 7.10.2008, 13:11) Выложи ...   7.10.2008, 13:58
- - bugsstring   народ сорри Я ДЯТЕЛ )))) ЦитатаtextLeft = new QAct...   7.10.2008, 15:44


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 13.7.2025, 14:54