文章目录
1、inherit global site-packages
在pycharm 创建项目时,有个勾选框,这个选项可以让新建的项目继承全局的Python包。如果你勾选了这个选项,新建的项目将能够使用全局环境中已安装的包。inherit 继承;
Create a virtual environment:这个选项将为新建的项目创建一个虚拟环境,这个环境和全局环境相互独立,可以单独安装和管理Python包。使用虚拟环境可以避免不同项目之间Python包的冲突,并且方便升级和管理包
2、setGeometry(10,20,30,40)
在PyQt中,setGeometry()
方法用于设置窗口或控件的位置和大小。它接受四个参数,分别对应不同的坐标和尺寸值。下面详细解释这些参数的含义:
setGeometry(x, y, width, height)
1. x
参数
- 含义:控件左上角的水平坐标(相对于父窗口或屏幕)。
- 单位:像素(px)。
- 示例:
x=10
表示控件左上角距离父窗口左侧边缘10像素。- 如果控件是顶级窗口(无父窗口),则相对于屏幕左上角。
2. y
参数
- 含义:控件左上角的垂直坐标(相对于父窗口或屏幕)。
- 单位:像素(px)。
- 示例:
y=20
表示控件左上角距离父窗口顶部边缘20像素。
3. width
参数
- 含义:控件的宽度。
- 单位:像素(px)。
- 示例:
width=30
表示控件从左到右的宽度为30像素。
4. height
参数
- 含义:控件的高度。
- 单位:像素(px)。
- 示例:
height=40
表示控件从上到下的高度为40像素。
示例说明
以下代码创建一个窗口,并设置其位置和大小:
window = QWidget()
window.setGeometry(10, 20, 30, 40)
-
窗口位置:
窗口左上角位于屏幕坐标(10, 20)
处(距离屏幕左侧10像素,顶部20像素)。 -
窗口大小:
窗口宽度为30像素,高度为40像素。
与其他方法的对比
-
resize(width, height)
- 仅设置控件的大小,不改变位置。
- 等效于
setGeometry(x, y, width, height)
中的width
和height
参数。
-
move(x, y)
- 仅设置控件的位置,不改变大小。
- 等效于
setGeometry(x, y, width, height)
中的x
和y
参数。
-
setFixedSize(width, height)
- 设置控件的固定大小,用户无法调整。
注意事项
-
坐标系统:
- 对于顶级窗口(无父窗口),坐标相对于屏幕。
- 对于子控件,坐标相对于父窗口的内部区域(不包括父窗口的边框)。
-
屏幕分辨率影响:
- 像素值在不同分辨率的屏幕上显示效果可能不同。
- 若需要适配多种屏幕,建议使用布局管理器(如
QVBoxLayout
)而非硬编码坐标。
-
与
setGeometry()
类似的方法:setGeometry()
是QWidget
的方法,适用于所有控件。QMainWindow
还提供setCentralWidget()
和statusBar()
等特殊布局方法。
示例代码
下面的代码演示了 setGeometry()
的用法:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel
app = QApplication(sys.argv)
# 创建主窗口
window = QWidget()
window.setWindowTitle("Geometry Example")
window.setGeometry(100, 100, 400, 300) # 窗口位置和大小
# 在窗口内创建一个标签
label = QLabel("Hello, PyQt!", window)
label.setGeometry(50, 50, 200, 30) # 标签位置和大小
window.show()
sys.exit(app.exec_())
这个示例中:
- 主窗口位于屏幕
(100, 100)
处,宽400像素,高300像素。 - 标签位于窗口内部
(50, 50)
处,宽200像素,高30像素。
通过 setGeometry()
,你可以精确控制控件的位置和大小,但在复杂界面中建议优先使用布局管理器以获得更好的自适应效果。