crossplatform.ru

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

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
> Выравнивание текста
bugsstring
  опции профиля:
сообщение 7.10.2008, 9:47
Сообщение #11


Новичок


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

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




Репутация:   0  


Сорри, народ...
нифига не работает, по кнопке выравнивает вправо и все
подскажите где я туплю

class TEdit : public QWidget
{
...
    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;
};

Имплементация
TEdit::TEdit()
{
       te = new QTextEdit;
   ...
    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()));
   ...
}
...
void TEdit::setAlignLeft()
{
    te->setAlignment(Qt::AlignLeft);
}
void TEdit::setAlignRight()
{
    te->setAlignment(Qt::AlignRight);
}
void TEdit::setAlignCenter()
{
    te->setAlignment(Qt::AlignCenter);
}


спасибо )))
но кнопку "Отправить" я жал 1 раз
это называется "Не используй предварительный просмотр НИКОГДА" )))

Сообщение отредактировал Admin - 7.10.2008, 9:43
Причина редактирования: Убрал лишнее, кнопку отправить нужно нажимать 1 раз! ;)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 7.10.2008, 9:49
Сообщение #12


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

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

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




Репутация:   40  


Посмотри в дебаге, ты попадаешь в слоты?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
bugsstring
  опции профиля:
сообщение 7.10.2008, 12:55
Сообщение #13


Новичок


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

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




Репутация:   0  


Цитата(ViGOur @ 7.10.2008, 9:49) *
Посмотри в дебаге, ты попадаешь в слоты?

вроде все ок, приконекчено куда надо
дебаггер молчит

что интересно
void TEdit::setAlignLeft()
{
    QTextCursor cursor = te->textCursor();
    QTextBlockFormat blockFmt;
    if(!cursor.hasSelection())
    {
        cursor.select(QTextCursor::BlockUnderCursor);
    }
    blockFmt.setAlignment(Qt::AlignLeft);
    cursor.mergeBlockFormat(blockFmt);
}

тоже не работает... ((

точнее опять же выравнивает вправо и все

P.S.
версия Win Qt 4.4.3
версия Linux Qt 4.4.1
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 7.10.2008, 13:11
Сообщение #14


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

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

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




Репутация:   40  


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


Новичок


Группа: Новичок
Сообщений: 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 килобайт ) Кол-во скачиваний: 113
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
bugsstring
  опции профиля:
сообщение 7.10.2008, 15:44
Сообщение #16


Новичок


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

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




Репутация:   0  


народ сорри Я ДЯТЕЛ ))))
Цитата
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()));
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 28.4.2024, 2:12