Russian Qt Forum

Qt => Вопросы новичков => Тема начата: YvenTitan от Октябрь 03, 2016, 18:06



Название: Ячейка между горизонтальным и вертикальным заголовками в QTableWidget
Отправлено: YvenTitan от Октябрь 03, 2016, 18:06
Здравствуйте
Подскажите пожалуйста, а можно что-то записать в ячейку между горизонтальным и вертикальным заголовками QTableWidget(это получается верхний левый угол таблицы)?


Название: Re: Ячейка между горизонтальным и вертикальным заголовками в QTableWidget
Отправлено: Bepec от Октябрь 03, 2016, 18:58
cornerWidget если я правильно помню. что хотите, то туда и пихайте.


Название: Re: Ячейка между горизонтальным и вертикальным заголовками в QTableWidget
Отправлено: YvenTitan от Октябрь 04, 2016, 10:28
Только не получается вставить
Пишу:
tableWidget->setCornerWidget(new QLabel("Время")) - и ничего не появляется на пересечении заголовков


Название: Re: Ячейка между горизонтальным и вертикальным заголовками в QTableWidget
Отправлено: gil9red от Октябрь 04, 2016, 11:27
cornerWidget если я правильно помню. что хотите, то туда и пихайте.

Верес, этот вопрос не вызвал ностальгии? :D
http://www.prog.org.ru/topic_22995_0.html


Название: Re: Ячейка между горизонтальным и вертикальным заголовками в QTableWidget
Отправлено: kai666_73 от Октябрь 04, 2016, 11:40
Только не получается вставить
Пишу:
tableWidget->setCornerWidget(new QLabel("Время")) - и ничего не появляется на пересечении заголовков

Потому что это метод от QAbstractScrollArea, то есть для установки виджета для пересечения горизонтального и вертикального скроллов.

Так что придется изгаляться, даю наводку: http://forum.vingrad.ru/topic-295624.html


Название: Re: Ячейка между горизонтальным и вертикальным заголовками в QTableWidget
Отправлено: GreatSnake от Октябрь 04, 2016, 14:08
Код
C++ (Qt)
class TableWidget : public QTableWidget
{
    QLabel* lb_ = nullptr;
 
protected:
     void updateGeometries() override
     {
           QTableWidget::updateGeometries();
           if( !lb_ )
             lb = new QLabel( "...", this );
           auto m = viewportMargins();
           lb->setGeometry( 0, 0, m.left(), m.top() );
     }
};