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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Изменение размера шрифтв заголовков в QTableWidget  (Прочитано 8287 раз)
xwicked
Новичок

Offline Offline

Сообщений: 12


Просмотр профиля
« : Июль 27, 2018, 01:06 »

Деелаю так:
Код
C++ (Qt)
QFont fTempFont;
   fTempFont = ui->twCopyBook->font();
   fTempFont.setPointSize(fTempFont.pointSize() + 1);
QHeaderView * hHeader = new QHeaderView(Qt::Horizontal);
   hHeader = ui->twCopyBook->horizontalHeader();
   hHeader->setFont(fTempFont);
   ui->twCopyBook->setHorizontalHeader(hHeader);
И так:
Код
C++ (Qt)
   hHeader->setStyleSheet("    font-size: 70px;\
           font-weight: bold;\
           background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,\
                                             stop:0 #616161, stop: 0.5 #505050,\
                                             stop: 0.6 #434343, stop:1 #656565);\
           color: black;\
           padding-left: 4px;\
           border: 1px solid #6c6c6c;"
);
Всё изменяется кроме размера шрифта. Есть ли  в сети рабочие примеры или вы может подскажите?

Благодарю за ответы!
Записан
zhbr
Гость
« Ответ #1 : Июль 27, 2018, 07:32 »

Код
C++ (Qt)
   QHeaderView * hHeader = new QHeaderView(Qt::Horizontal);
   hHeader = ui->twCopyBook->horizontalHeader();
 
ничего не режет глаз?

а по теме: у себя в проекте меняю через qss:
Код:
QHeaderView::section {
  font-size: 70px;
}

Записан
xwicked
Новичок

Offline Offline

Сообщений: 12


Просмотр профиля
« Ответ #2 : Июль 27, 2018, 12:18 »

Код
C++ (Qt)
   QHeaderView * hHeader = new QHeaderView(Qt::Horizontal);
   hHeader = ui->twCopyBook->horizontalHeader();
 
ничего не режет глаз?

а по теме: у себя в проекте меняю через qss:
Код:
QHeaderView::section {
  font-size: 70px;
}


Я беру текущий заголовок, копирую его в другую переменную, чтобы можно было изменят его значения, так как horizontalHeader() - это константа. Потом меняю только шрифт и загоняю обратно. По-моему всё логично.
Я видел эти примеры QSS, но куда их вставлять в проекте? Желательно способ без наследования QTableWidget.
Записан
xwicked
Новичок

Offline Offline

Сообщений: 12


Просмотр профиля
« Ответ #3 : Июль 27, 2018, 13:12 »

Нашёл здесь на форуме: http://www.prog.org.ru/topic_20632_0.html. Попробую распарсить. Если не получиться, то напишу.
Записан
zhbr
Гость
« Ответ #4 : Июль 27, 2018, 15:29 »

Я беру текущий заголовок, копирую его в другую переменную, чтобы можно было изменят его значения, так как horizontalHeader() - это константа. Потом меняю только шрифт и загоняю обратно. По-моему всё логично.
вы выделяете зачем-то динамически QHeaderView, а затем указатель на новый объект вы перезаписываете. утечка памяти.
и horizontalHeader() это не константа.

Я видел эти примеры QSS, но куда их вставлять в проекте? Желательно способ без наследования QTableWidget.
либо конкретному виджету http://doc.qt.io/qt-5/qwidget.html#styleSheet-prop либо аппликейшену http://doc.qt.io/qt-5/qapplication.html#styleSheet-prop
« Последнее редактирование: Июль 30, 2018, 08:32 от zhbr » Записан
xwicked
Новичок

Offline Offline

Сообщений: 12


Просмотр профиля
« Ответ #5 : Июль 30, 2018, 23:04 »

...
вы выделяете зачем-то динамически QHeaderView, а затем указатель на новый объект вы перезаписываете. утечка памяти.
и horizontalHeader() это не константа.
...
Код
C++ (Qt)
qtableview.h
QHeaderView *horizontalHeader() const;
Я всё правильно делаю. Зря посомневался в себе.... Он же подсказкой показывает в QtCreator с каким свойством или меетодом я работаю!
Записан
ssoft
Программист
*****
Offline Offline

Сообщений: 584


Просмотр профиля
« Ответ #6 : Июль 31, 2018, 08:03 »

Я всё правильно делаю. Зря посомневался в себе.... Он же подсказкой показывает в QtCreator с каким свойством или меетодом я работаю!

Даже не знаю что сказать... Нужно срочно учить плюсы, если хотите программировать на них.

Код
C++ (Qt)
   QHeaderView * hHeader = new QHeaderView(Qt::Horizontal);
   hHeader = ui->twCopyBook->horizontalHeader();
 

Я беру текущий заголовок, копирую его в другую переменную, чтобы можно было изменят его значения, так как horizontalHeader() - это константа. Потом меняю только шрифт и загоняю обратно. По-моему всё логично.
Я видел эти примеры QSS, но куда их вставлять в проекте? Желательно способ без наследования QTableWidget.

Вы создаете переменную указателя со связью с совершенно новым объектом.
Затем заменяете значение указателя связью с каким-то другим. Какая-либо связь с первым объектом исчезает, появляются, так называемые, мемори лики.

Так - все отлично работает.

Код
C++ (Qt)
   QFont fTempFont;
   fTempFont = ui->twCopyBook->font();
   fTempFont.setPointSize(fTempFont.pointSize() + 10);
   QHeaderView * hHeader = new QHeaderView(Qt::Horizontal);
   hHeader->setFont(fTempFont);
   ui->twCopyBook->setHorizontalHeader(hHeader);
 

Записан
zhbr
Гость
« Ответ #7 : Июль 31, 2018, 09:31 »

Я всё правильно делаю. Зря посомневался в себе.... Он же подсказкой показывает в QtCreator с каким свойством или меетодом я работаю!

думаю не зря вы в себе сомневаетесь Улыбающийся

Код:
#include <QString>
#include <iostream>

class SomeClass
{
public:
    SomeClass(): _str(new QString)
    {
        *_str = "foo";
    }
    ~SomeClass()
    {
        delete _str;
    }

    QString* strPtr() const
    {
        return _str;
    }

private:
    QString* _str;
};

int main(int, char**)
{
    SomeClass a;

    std::cout << a.strPtr()->toStdString().c_str() << std::endl;

    *a.strPtr() = "bar";

    std::cout << a.strPtr()->toStdString().c_str() << std::endl;
}
Записан
xwicked
Новичок

Offline Offline

Сообщений: 12


Просмотр профиля
« Ответ #8 : Июль 31, 2018, 15:40 »

...
Даже не знаю что сказать... Нужно срочно учить плюсы, если хотите программировать на них.

...

Так - все отлично работает.

Код
C++ (Qt)
   QFont fTempFont;
   fTempFont = ui->twCopyBook->font();
   fTempFont.setPointSize(fTempFont.pointSize() + 10);
   QHeaderView * hHeader = new QHeaderView(Qt::Horizontal);
   hHeader->setFont(fTempFont);
   ui->twCopyBook->setHorizontalHeader(hHeader);
 
Сорян. ВОт это
Код
C++ (Qt)
= new QHeaderView(Qt::Horizontal)
лишнее
Ваш код работает только если обнуляются строки со столбцами. Динамически это не происходит...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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