Найти - Пользователи
Полная версия: QTableWidget ширина
Начало » GUI » QTableWidget ширина
1
sergeek
Как подогнать размер виджета по ширине под таблицу?
import sys
from PyQt4.QtGui import QTableWidget, QSizePolicy, QApplication
app = QApplication(sys.argv)
w = QTableWidget(10,10)
# p = QSizePolicy()
# p.setHorizontalPolicy(QSizePolicy.Ignored)
# w.setSizePolicy(p)
# print(w.sizePolicy().horizontalPolicy())
# print(w.width())
# print(w.frameSize())
# print(w.size())
# print(w.sizeHint())
# print(w.baseSize())
# print(w.maximumWidth())
# print(w.maximumViewportSize())
# print(w.geometry())
# print(w.normalGeometry())
# print(w.frameGeometry().width())
# w.adjustSize()
w.show()
sys.exit(app.exec_())
То есть, нужно чтобы была видна таблица целиком независимо от размера ее столбцов.
Те закоментированные принты не выводят нужных размеров, почему-то.
sergeek
Видимо нельзя-таки это сделать по-нормальному. Решил так:
import sys
from PyQt4.QtGui import QTableWidget, QApplication
app = QApplication(sys.argv)
w = QTableWidget(10,10)
s = w.horizontalScrollBar()
w.show()
while s.isVisible():
    w.setFixedWidth(w.width()+1)
    
sys.exit(app.exec_())
reclosedev
Еще вариант.

Ширину столбцов можно получить через horizontalHeader
http://qt-project.org/doc/qt-4.8/qheaderview.html#length

К ней нужно прибавить ширину вертикального хедера и скролбара
import sys
from PyQt4.QtGui import QTableWidget, QApplication
app = QApplication(sys.argv)
w = QTableWidget(10,10)
w.show()
w.setFixedWidth(w.horizontalHeader().length() +
                w.verticalScrollBar().width() +
                w.verticalHeader().width())
sys.exit(app.exec_())
Но не факт, что горизонтальный скроллбар исчезнет, возможно нужно учитывать еще что-то, не хватает буквально 2-х пикселей.
sergeek
Так получше, ага. Я пробовал только через сумму ширины стобцов и скроллбара и там побольше пикселей не хватало. Потестил - в линуксе не хватает 4 пикселя, в винХП - 2. Видимо, там еще какой-нибудь ширины рамки не достает. В любом случае, лучше, наверное, добавить константы, чем наблюдать как оно дергается Спасибо
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB