Я пишу приложение pyqt с меню и центральным виджетами (виджет таблицы с строками и столбцами, который похож на лист распространения). Я хочу, чтобы размер закрывающего окна был размером с виджет. Я не хочу исправлять его до определенного размера и места для отходов вокруг границы по эстетическим соображениям. Как извлечь всю ширину виджета таблицы? Я попытался использовать tabeleWidget.width(), но это дает мне ширину ячейки, которая кажется. Я использую pyqt4 и python 2.7.PyQt: Как установить размер окна в соответствии с размером виджета?
0
A
ответ
1
Я не уверен, есть ли простой способ получить размер стола, но как насчет чего-то подобного?
from PyQt4 import QtCore, QtGui
class MainWindow(QtGui.QMainWindow):
def __init__(self, table_rows, table_cols, **kwargs):
super(MainWindow, self).__init__(**kwargs)
self.table = QtGui.QTableWidget(table_rows, table_cols)
self.table.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.table.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.table.verticalHeader().sectionResized.connect(self.fitToTable)
self.table.horizontalHeader().sectionResized.connect(self.fitToTable)
self.setCentralWidget(self.table)
self.fitToTable()
@QtCore.pyqtSlot()
def fitToTable(self):
x = self.table.verticalHeader().size().width()
for i in range(self.table.columnCount()):
x += self.table.columnWidth(i)
y = self.table.horizontalHeader().size().height()
for i in range(self.table.rowCount()):
y += self.table.rowHeight(i)
self.setFixedSize(x, y)
if __name__ == '__main__':
app = QtGui.QApplication([])
win = MainWindow(4, 5)
win.show()
app.exec_()
В этом примере вычисляется размер таблицы и фиксируется размер окна для этих значений. Он также изменяет размер окна, чтобы он соответствовал, если пользователь вручную изменит размер любой из строк или столбцов.
+0
Благодарим вас за исчерпывающий ответ. – LostInTheFrequencyDomain
Смежные вопросы
- 1. Пользовательский размер виджета PyQt
- 2. Как изменить размер диалогового окна в соответствии с размером таблицы в pyqt?
- 3. Как установить выравнивание элементов в соответствии с размером окна
- 4. Как установить размер содержимого в соответствии с размером панели UINavigation
- 5. Как установить размер JTextPane в соответствии с размером JPanel?
- 6. PyQt/PySide - Фактический размер виджета
- 7. Как установить размер всплывающего окна в соответствии с размером печати (A4)
- 8. Как установить размер окна браузера в соответствии с графиком D3JS?
- 9. Страница перенаправления в соответствии с размером окна
- 10. Как изменить размер шрифта JButton в соответствии с его размером?
- 11. Как масштабировать объект в соответствии с размером окна?
- 12. Как установить начальный размер виджета в PyQt больше, чем 2/3rds экрана
- 13. Виджеты не расширяются в соответствии с размером окна
- 14. Как установить размер модального окна
- 15. Как изменить размер UITableViewCell в соответствии с размером подтипа UITextView?
- 16. Размер вкладок jQuery в соответствии с размером содержимого
- 17. Выполнение изменения размера iframe в соответствии с размером окна
- 18. Pyqt как получить размеры виджета
- 19. Измените размер QWebView и QMessagebox в соответствии с размером QMainWindow
- 20. Как изменить размер HTML-виджета Maxpreps в соответствии с UIWebView?
- 21. Как вычислить размер виджета SWT в соответствии с Windows DPI
- 22. Как изменить размер изображения в соответствии с размером метки? (python)
- 23. Как изменить размер холста на JavaFX в соответствии с размером
- 24. Как изменить размер элемента DIV в соответствии с размером браузера?
- 25. Как настроить размер изображения в соответствии с размером div?
- 26. Как изменить размер текста в соответствии с размером ширины?
- 27. iTextSharp: Как изменить размер изображения в соответствии с размером исправления?
- 28. Выравнивание виджета в ячейке pyqt
- 29. Динамический размер элемента с размером окна jquery
- 30. PyQt - отображение виджета поверх виджета
Вы используете макеты? Если виджет таблицы является единственным виджемом в вашем окне, то окно должно быть того же размера, что и таблица. –