文章目录
- 1. 简介
- 2. QtDesigner的MainWindow
- 2.1 创建MainWindow
- 2.2 添加组件
- 2.3 预览
- 2.4 查看对应的Python代码
- 2.5 保存窗口并命名为login.ui,如下所示
- 2.6对ui文件进行转换得到.py原件
- 3. 窗口常用属性及说明
- 3.1 设置对象名称
- 3.2 改变标题名字
- 3.3 修改窗口大小
- 4. 更改窗口的图标
- 5. 窗口的背景
- 5.1 用.setStyleSheet在代码里设置
- 5.2 用QPalette这个类进行更改背景颜色和背景图片
- 5.3 通过资源浏览器进行设置
- 6.设置窗口透明度
- 7.控制窗口样式
1. 简介
Qt Designer 是 PyQt5 中的一款可视化界面设计工具,它允许用户通过拖放部件来设计 GUI 界面,并生成相应的代码。QtDesigner的窗口区域如下所示
2. QtDesigner的MainWindow
主窗口是 Qt Designer 的主界面,包含了工具栏、菜单栏、状态栏等。你可以在主窗口中打开、保存、关闭界面设计文件,以及预览和测试界面效果。
2.1 创建MainWindow
通过Pycharms我们可以打开QtDesigner, Tools ->External Tools->QtDesigner, 如下,我们可以创建一个MainWindow,
2.2 添加组件
在这个窗口中,我们可以添加Label和Line edit, Label的文本改为“用户名”,如下所示
继续添加Label和Line edit, 这个Label改名为密码,并且新增一个Push Button, 改名为登录按钮,这样我们就建立起下面这个界面了。
2.3 预览
在窗口预览里,我们可以有几种不同风格的预览,如下所示
这里我们直接用ctrl+R预览结果如下,
2.4 查看对应的Python代码
结果如下,这些代码是可以直接复制运行的。
2.5 保存窗口并命名为login.ui,如下所示
2.6对ui文件进行转换得到.py原件
对login.ui文件用PyUIC转换为对应的.py文件,这个.py文件就会生成在我们同级目录下,如下所示
打开这个login.py 文件,我们是并不能直接运行得到窗口的,需要提供一个入口,如下所示
这样我们就可以运行得到如下结果
上面增加的代码如下
if __name__ == "__main__":
# 导入 sys 模块,用于处理命令行参数和退出应用程序
import sys
# 创建一个 QApplication 实例,这是 PyQt 应用程序的主对象
app = QtWidgets.QApplication(sys.argv)
# 创建一个 QMainWindow 实例,这是应用程序的主窗口
MainWindow = QtWidgets.QMainWindow()
# 创建一个 Ui_MainWindow 实例,这是用于设计主窗口界面的类
ui = Ui_MainWindow()
# 调用 Ui_MainWindow 类中的 setupUi() 方法,将主窗口设置为设计的界面
ui.setupUi(MainWindow)
# 显示主窗口
MainWindow.show()
# 进入主循环,等待事件的发生,直到应用程序被关闭
sys.exit(app.exec_())
3. 窗口常用属性及说明
3.1 设置对象名称
可以在属性编辑器里改变objectName的值,如下所示
也可以将保存后的程序,用PyUIC产生的.py文件里,用.setObjectName()的方法来改名字
3.2 改变标题名字
在属性里改变windowTitle的值,如下所示
这里我们改成如下title
也可以在.py文件中改title,可以用.setWindowTitle()方法,如下所示
改了title后,再运行有就会有结果(注意:这里.py文件依然要加上login文件里的程序入口,才能运行出结果),如下所示
这里我也给出修改和增加后的程序
def retranslateUi(self, test):
_translate = QtCore.QCoreApplication.translate
test.setWindowTitle("This is demo")
if __name__ == "__main__":
# 导入 sys 模块,用于处理命令行参数和退出应用程序
import sys
# 创建一个 QApplication 实例,这是 PyQt 应用程序的主对象
app = QtWidgets.QApplication(sys.argv)
# 创建一个 QMainWindow 实例,这是应用程序的主窗口
MainWindow = QtWidgets.QMainWindow()
# 创建一个 Ui_test 实例,这是用于设计主窗口界面的类
ui = Ui_test()
# 调用 Ui_test 类中的 setupUi() 方法,将主窗口设置为设计的界面
ui.setupUi(MainWindow)
# 显示主窗口
MainWindow.show()
# 进入主循环,等待事件的发生,直到应用程序被关闭
sys.exit(app.exec_())
3.3 修改窗口大小
修改窗口大小,可以在属性窗口里用geometry属性,在代码里可用resize()方法,如下所示
4. 更改窗口的图标
一般创建窗口自带的图标如下所示
我们可以在属性里更改windowIcon属性,或者在代码里用setWindowIcon()方法更改,如下所示。注:这里图标要根据自己放置图标的路径去选择。
修改后,预览crtl+R是可以看到修改后的效果的。
代码里更改窗口图标如下
这里修改Icon的代码如下
# 创建 QIcon 实例
icon = QtGui.QIcon()
# 添加图片到 QIcon 实例中,使用 './favicon.ico' 文件作为图标路径 注:这里图标路径根据自己情况去选
icon.addPixmap(QtGui.QPixmap('./favicon.ico'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
# 将图标设置为窗口的图标
test.setWindowIcon(icon)
然后运行,结果如下
5. 窗口的背景
5.1 用.setStyleSheet在代码里设置
改变背景颜色可以用如下格式,
改背景图片可以用如下格式
注:这里背景图片的路径根据你自己的实际情况指定
5.2 用QPalette这个类进行更改背景颜色和背景图片
改变背景颜色
注:这里要在开头引入Qt这个类,即
from PyQt5.QtCore import Qt
改变背景图片
注:这里要在开头引入QBrush, QPixmap类,即
from PyQt5.QtGui import QBrush, QPixmap
我们可以进一步让图片自适配窗口大小
程序如下:
# 使用scaled()方法将图片缩放到窗口的大小
palette.setBrush(test.backgroundRole(),
QBrush(QPixmap('./cat.jpg').scaled(test.size(),
QtCore.Qt.IgnoreAspectRatio, QtCore.Qt.SmoothTransformation)))
5.3 通过资源浏览器进行设置
过程如下:
这样我们就可以把背景图片加上去了,保存后,可以用PyUIC将.ui转换为.py文件,转换为.py文件后,我们就会多一个.qrc文件,如果不把这个qrc文件转化为.py文件,我们就没法正常运行程序,这里就需要用到Pyrcc,在tools–>external tools–>Pyrcc里对img.qrc文件处理,得到img_rc.py文件。之后我们就可以运行test.py文件了
6.设置窗口透明度
在属性里windowOpacity里设置,或者在代码里setWindowOpacity()方法设置
改为0.5后,预览就变成半透明了,这个值可以在0到1之间修改,0代表完成透明,1代表完全不透明。
在代码里就用一个命令就可以
7.控制窗口样式
用.setWindowFlags()来设置窗口样式,默认的是如下的样式