Python QT 和 TK 的画布面板大小约束
站长
· 阅读数 3
使用 TK
或者 QT
程序编辑画布界面的时候,
可能会对于定位排版的时候,
使用了绝对位置参数定位,
哪怕是用了百分比的参数定位,
对于对窗口进行大小拖拽这样的事情,
也会影响美观,
所以就我个人而言这个问题,
我都是将窗口设置成不可拖拽改变大小的。
匿名网友:“怎么设置?”。
好的, 我们满足这个网友, 帮 TA 解决这个问题。
ps:内心戏真足~
PyQt5
对于 QT 程序, 虽然有一个 QT Designer 可以实现图形化编码, 并实现最终展示的画布界面, 但是, 个人感觉用不来, 可能是我太笨了, 还是喜欢用代码的方式写:
#!/usr/bin/env python
# _*_ Coding: UTF-8 _*_
from PyQt5 import QtWidgets
if __name__ == '__main__':
app = QtWidgets.QApplication([])
windows = QtWidgets.QWidget()
windows.setWindowTitle('Medusa MQT')
windows.setMinimumWidth(400)
windows.setMaximumWidth(400)
windows.setMinimumHeight(400)
windows.setMaximumHeight(400)
windows.show()
app.exec_()
在第九行至十二行代码中, 我们使用了配置最大和最小值来限制窗口大小, 而 QT 的展示上, 是连鼠标都没有了。 从上面的 GIF 中可以看到鼠标移动到界面边缘并没有出现双箭头图标, 也意味着不能改变其床头大小。
Tkinter
TK 稍微有一点点点点不一样, 虽然鼠标靠近画布边缘有双箭头图标, 但是由于设置了相关属性, 拖拽实际上并无效果。
#!/usr/bin/env python
# _*_ Coding: UTF-8 _*_
import tkinter as tk
if __name__ == '__main__':
window = tk.Tk()
window.title('Medusa MTK')
window.minsize(400, 400)
window.maxsize(400, 400)
window.mainloop()
在第八、第九行设置了最大和最小的宽高数值, 所以这样就限制了窗口拖拽的最大和最小尺寸。 示例中向内拖拽测试仅有一次, 但是实际上向内向外拖拽都是没有效果的, 达到了预期的效果。
后记
设置宽高不可变的目的也是为了背景图展示, 不会出现背景图覆盖不完全的问题。