Russian Qt Forum
Ноябрь 18, 2024, 14:01 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [qt 3] про QString или, скорей всего, QTable  (Прочитано 5279 раз)
Kosh
Гость
« : Февраль 05, 2008, 16:51 »


table->setText( col, text );

если text содержит только цифры, текст оказывается прижат вправо, в противном случае - влево. Поскажите волшебное слово, чтобы все влево прижать.
Записан
Steven_Orko
Гость
« Ответ #1 : Февраль 06, 2008, 16:35 »

Поставить пробел вначале?
Записан
Kosh
Гость
« Ответ #2 : Февраль 06, 2008, 17:08 »

нелзя ничего добавлять, потом из этих полей текст используется.
Можно, конечно ко всем текстам пробел добавлять, а потом у всех его откидывать, но это уже что-то на грани маразма
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #3 : Февраль 06, 2008, 19:50 »

можно попробовать свою отрисовку ячейки сделать наверно?
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
BRE
Гость
« Ответ #4 : Февраль 06, 2008, 20:38 »

Тогда уж проще сделать наследника от QTableItem в котором переопределить метод alignment(). Тогда можно будет сделать установку выравнивания хоть в конструкторе данного класса, хоть в отдельной функцией.
Как то так:

Код:
class MyTableItem : public QTableItem
{
public:
    MyTableItem( QTable *table, EditType et, const QString &text, int align ) : QTableItem( t, et, text ), m_align( align ) {}
    ...

    void setAlignment( int align ) { m_align = align; }

    virtual int alignment() const { return m_align; }

private:
    int m_align;
};
Записан
Kosh
Гость
« Ответ #5 : Февраль 19, 2008, 11:03 »

тогда уж и метод отрисовки перегрузить надо, т.к. QTable плевать на переменную m_align
Записан
BRE
Гость
« Ответ #6 : Февраль 19, 2008, 16:35 »

тогда уж и метод отрисовки перегрузить надо, т.к. QTable плевать на переменную m_align
Зато ей не плевать на результат вызова виртуального метода QTableItem::alignment().
Ну а если хочется, то можно и метод отрисовки перегрузить, да и вообще кучу других.  Подмигивающий
Записан
Sergeich
Гость
« Ответ #7 : Февраль 20, 2008, 02:49 »

Можно вообще пропатчить саму Qt-шку Подмигивающий так Тролли на 3-ку забили Улыбающийся Типа в файле src/table/qtable.cpp рисуем в место
Код:
int QTableItem::alignment() const
{
    bool num;
    bool ok1 = FALSE, ok2 = FALSE;
    (void)text().toInt( &ok1 );
    if ( !ok1 )
(void)text().toDouble( &ok2 ); // ### should be .-aligned
    num = ok1 || ok2;

    return ( num ? AlignRight : AlignLeft ) | AlignVCenter;
}
Код:
int QTableItem::alignment() const
{
    return AlignLeft | AlignVCenter;
}
Ну а по-уму надо действительно наследовать QTableItem, в котором переопределить alignment(). Дополнительно еще можно отнаследоваться от QTable и переопределить setText:
Код:
MyTable::setText() 
{
    QTableItem *itm = item( row, col );
    if ( itm ) {
itm->setText( text );
itm->updateEditor( row, col );
updateCell( row, col );
    } else {
QTableItem *i = new MyTableItem( this, QTableItem::OnTyping,
text, QPixmap() );
setItem( row, col, i );
    }
}
Записан
Kosh
Гость
« Ответ #8 : Февраль 27, 2008, 17:11 »

забила я на это дело и ушла на qt-4
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.113 секунд. Запросов: 23.