likes
comments
collection
share

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

作者站长头像
站长
· 阅读数 3

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 的画布面板大小约束 从上面的 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 的画布面板大小约束 示例中向内拖拽测试仅有一次, 但是实际上向内向外拖拽都是没有效果的, 达到了预期的效果。

后记

设置宽高不可变的目的也是为了背景图展示, 不会出现背景图覆盖不完全的问题。

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