pyqt5窗口等比例放大
时间: 2023-08-22 13:10:03 浏览: 145
要实现PyQt5窗口的等比例放大,可以使用QMainWindow的resizeEvent函数和resizeDocks函数来实现。首先,在主窗口的resizeEvent函数中,可以获取到主窗口的宽度。然后,根据需要的比例计算出两个dock的宽度。最后,使用resizeDocks函数将两个dock按照计算得到的宽度比例进行调整。
以下是一个示例代码:
```python
from PyQt5.QtWidgets import *
from PyQt5 import QtCore
import sys
class UI(QMainWindow):
def __init__(self):
super().__init__()
self.dock1 = QDockWidget('1')
self.dock2 = QDockWidget('2')
self.addDockWidget(QtCore.Qt.LeftDockWidgetArea, self.dock1)
self.addDockWidget(QtCore.Qt.RightDockWidgetArea, self.dock2)
self.setGeometry(500, 500, 1000, 700)
self.show()
def resizeEvent(self, event):
width1 = int(event.size().width() * 0.2)
width2 = int(event.size().width() * 0.8)
self.resizeDocks(\[self.dock1, self.dock2\], \[width1, width2\], QtCore.Qt.Horizontal)
if __name__ == '__main__':
app = QApplication(sys.argv)
ui = UI()
ui.show()
sys.exit(app.exec_())
```
在上述代码中,resizeEvent函数会在主窗口初始化和每一次主窗口大小改变时被调用。在函数中,根据主窗口的宽度计算出两个dock的宽度,然后使用resizeDocks函数将两个dock按照计算得到的宽度比例进行调整。这样,无论主窗口的大小如何改变,两个dock的宽度比例都会保持为1:4。
#### 引用[.reference_title]
- *1* *2* *3* [【PyQT5】在QMainWindow中实现QDockWidget的大小等比例变化](https://blog.csdn.net/weixin_43000172/article/details/120972680)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]