Qt Designer 是一个图形化设计工具,用于设计 GUI(图形用户界面)。它支持拖放式的界面设计,可以创建按钮、标签、文本框、布局等各种界面元素,非常适合与 PyQt5 或 PySide2 搭配使用。以下是 Qt Designer 的详细使用教程。
1. 安装 Qt Designer
可以通过安装 PyQt5 或 PySide2 获取 Qt Designer:
// An highlighted block
pip install pyqt5 pyqt5-tools
安装完成后,在命令行中输入 designer 打开 Qt Designer。如果无法直接打开,可以在安装目录的 Scripts 文件夹下找到 designer.exe。
2. 创建新界面文件
打开 Qt Designer 后,选择新建的界面类型:
Main Window:标准的主窗口,带有菜单栏、工具栏等。
Dialog:对话框界面,用于弹窗、提示等。
Widget:通用的窗口部件,可以作为主界面使用。
一般开发普通界面时,选择 Main Window 或 Widget。
3. 界面设计基础
界面左侧工具箱包含了常用控件,右侧包含属性编辑器和对象结构树,底部可以选择界面的布局方式。
添加控件
在左侧的控件列表中,选择需要的控件并拖放到设计区域。例如:
QPushButton:按钮控件
QLineEdit:文本输入框
QLabel:文本标签
QComboBox:下拉菜单
QTextBrowser:文本显示框
设置控件属性
**对象名称:**在右侧属性编辑器的顶部,设置控件的对象名称(objectName)。Python 代码中将通过此名称引用该控件,因此要确保名称有意义且与 Python 中一致。
文本内容:可以设置控件显示的默认文本,例如按钮的文字、标签的内容等。
几何属性:调整控件的位置(geometry)和大小,也可以直接拖动控件改变。
样式:可以在样式表中添加 CSS 风格的样式代码,调整控件的颜色、字体等。
布局设置
布局管理器用于自动调整控件的排列方式,使界面在窗口大小变化时保持一致。常见布局有:
水平布局:将控件水平排列
垂直布局:将控件垂直排列
网格布局:将控件放入网格中,适用于复杂布局
表单布局:左边是标签,右边是输入框等控件,适用于表单界面
选中需要布局的控件后,在底部的布局选项中选择适合的布局,或右键选择 Layout,根据需求选择布局方式。
4. 保存 .ui 文件
设计完成后,将文件保存为 .ui 格式,例如 login.ui,此文件记录了界面的 XML 结构,之后可以用 pyuic5 命令将其转换为 Python 代码。
5. 使用 pyuic5 转换 .ui 文件
在终端或命令提示符下运行以下命令将 .ui 文件转换为 .py 文件:
// An highlighted block
pyuic5 -o login.py login.ui
login.py 文件生成后,可以直接在 Python 中导入并使用。
6. 编写主程序调用生成的 .py 文件
创建一个新的 Python 文件(例如 main.py),并在其中导入生成的 login.py,添加信号与槽的逻辑。以下是一个简单示例:
main.py 示例代码
python
// An highlighted block
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from login import Ui_Form # 导入生成的 UI 文件
class MainWindow(QMainWindow, Ui_Form):
def __init__(self):
super().__init__()
self.setupUi(self)
# 连接信号与槽
self.pushButton.clicked.connect(self.on_login)
def on_login(self):
username = self.lineEdit.text()
password = self.lineEdit_2.text()
# 简单验证
if username == "admin" and password == "123":
self.textBrowser.setText("登录成功!")
else:
self.textBrowser.setText("登录失败!")
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
main.py
在这个示例中,MainWindow 类继承了 QMainWindow 和生成的 Ui_Form。self.setupUi(self) 方法将加载 .ui 文件的内容。self.pushButton.clicked.connect(self.on_login) 用于将按钮点击事件与自定义的 on_login 函数绑定。
7. 运行主程序
在命令行中运行以下命令启动程序:
python main.py
这样,你就可以在窗口中看到用 Qt Designer 设计的界面,并实现了基本的交互功能。
8. 常见控件与功能
QPushButton:用于按钮交互,点击后触发槽函数。
QLineEdit:用于单行文本输入,可以设置密码模式。
QLabel:用于显示文字、图片等内容。
QComboBox:下拉选择框,可以添加选项。
QTextBrowser:用于显示多行文本,可以设置富文本。
总结
Qt Designer 提供了强大的界面设计功能,搭配 PyQt 使用时可以减少大量手写 UI 代码的工作。通过设计 .ui 文件、使用 pyuic5 工具转换文件,再结合 Python 编写交互逻辑,完成界面的开发和功能实现。