Python中QT和TK的画布面板大小约束

使用 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 的展示上, 是连鼠标都没有了。

Python中QT和TK的画布面板大小约束_第1张图片

从上面的 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()

在第八、第九行设置了最大和最小的宽高数值, 所以这样就限制了窗口拖拽的最大和最小尺寸。

Python中QT和TK的画布面板大小约束_第2张图片

示例中向内拖拽测试仅有一次, 但是实际上向内向外拖拽都是没有效果的, 达到了预期的效果。

后记

实际上开发的画布组件一般情况会用相对数值定位比较多, 如果不限制大小, 可能会把组件遮挡, 可能会留下一大块空白区域, 在美观上, 还是存在一些小问题, 当然, 这并不影响功能使用。

你可能感兴趣的:(Python中QT和TK的画布面板大小约束)