Я пытаюсь получить ширину qscrollbar, поскольку она изменяет видимость. Я делаю это, потому что я хочу изменить ширину моего qtablewidget по ширине qscrollbar, если она видна.Получить QScrollBar Width после изменения QScrollBar Видимость
Я использую сигнал rangeChanged(int min, int max)
с моей панели qscrollbar. Если max > min
, то отображается панель qscrollbar. Моя проблема заключается в том, что, когда я получаю ширину qscrollbar с использованием m_tableWidget->verticalScrollBar()->width()
, значение не является текущей шириной, а скорее предыдущей шириной перед сигналом rangeChanged.
Это то, что мое соединение сигнала слота выглядит следующим образом:
connect(m_tableWidget->verticalScrollBar(), SIGNAL(rangeChanged(int,int)),
this, SLOT(verticalScrollBarChanged(int,int)));
И это слот функция:
void ImageTableWidget::verticalScrollBarChanged(int min, int max)
{
int verticalScrollBarWidth = 0;
if (max-min)
verticalScrollBarWidth = m_tableWidget->verticalScrollBar()->width();
int horizontalHeaderWidth = m_tableWidget->horizontalHeader()->length();
m_tableWidget->setFixedWidth(verticalScrollBarWidth + horizontalHeaderWidth);
}
Кто-нибудь знает, как я мог бы получить новую ширину QScrollBar в то время он становится видимым/невидимым?
Я хочу, чтобы две вещи произошли в моей таблице: 1) Я хочу, чтобы ячейки таблицы плотно прилегали к их содержимому (результат, который я получаю от использования 'resizeColumnsToContents', и 2) Я хочу, чтобы ширина таблицы плотно прилегала к ширина горизонтального заголовка (т. е. пробел после последнего столбца и отсутствие горизонтальной полосы прокрутки). Установка политики размера для расширения не дает мне этих результатов. – Stanton
Проблема должна быть разбита на части: 1) Как автоматически настроить размер внутреннего виджета. 2) Как настроить ячейки. Я считаю неправильным отклонять простейший и эффективный №1, потому что вы не поняли №2. Первоначально вопрос о №1. И я не могу сказать о # 2, пока я этого не делал, но в значительной степени сделал многое из остальных. – AlexanderVX
Я уже понял, как настроить размеры ячеек по своему вкусу, используя 'resizeColumnsToContents'. Теперь мне просто нужно настроить ширину QTableWidget, чтобы она соответствовала общей ширине моих отображаемых данных. Я переживаю всю эту проблему, потому что мне не нравится, как вертикальная полоса прокрутки покрывает некоторые из моих прав большинства данных столбцов, когда она появляется. Я также скрыл горизонтальную полосу прокрутки, потому что у меня есть только два столбца для отображения. Я просто нуждаюсь в ширине вертикальной полосы прокрутки, поскольку мне кажется, что я должен закончить внешний вид. – Stanton