【翻译】在Qt Designer中创建主窗口(Main Windows)

原文地址:https://doc.qt.io/qt-6/designer-creating-mainwindows.html

Qt Designer 可用于为不同用途创建用户界面,并为每个用户界面提供不同类型的模板。主窗口模板用于创建具有菜单栏、工具栏和停靠窗口部件的应用程序窗口。
在这里插入图片描述

通过打开文件菜单并选择新建窗体...选项,或者 Ctrl + N快捷键,创建一个新的主窗口,然后选择Main Window模板。该模板提供了一个主应用程序窗口,默认情况下包含一个菜单栏和一个工具栏-如果不需要,可以删除它们。
在这里插入图片描述

如果删除了菜单栏,可以再通过窗体右键菜单选择添加菜单栏选项创建一个新的菜单栏。
在这里插入图片描述

注意:一个应用程序只能有一个菜单栏,但可以有多个工具栏。

### 如何在 Qt Designer 中实现主窗口创建窗口的功能 要在 PyQt5 或 PySide2 的项目中使用 Qt Designer 实现主窗口创建窗口功能,可以按照以下方式操作: #### 1. **设计主窗口** 利用 Qt Designer 创建一个 `MainWindow` 类型的主窗口,并在其界面上放置一个按钮(如名为 `btnOpenSubWindow`),用于触发子窗口的显示[^1]。 ```python from PyQt5 import QtWidgets, uic class MainWindow(QtWidgets.QMainWindow): def __init__(self): super(MainWindow, self).__init__() uic.loadUi('mainWindow.ui', self) # 加载主窗口UI文件 self.btnOpenSubWindow.clicked.connect(self.open_sub_window) def open_sub_window(self): sub_window = SubWindow() sub_window.show() ``` 上述代码展示了如何加载由 Qt Designer 设计的 `.ui` 文件并将其转换为主窗口类的一部分。当点击按钮时,会调用 `open_sub_window` 方法来实例化子窗口并展示它[^3]。 --- #### 2. **设计子窗口** 同样,在 Qt Designer创建一个新的 UI 文件作为子窗口的设计稿。假设该子窗口包含一个退出按钮(命名为 `btnExit`)。完成后将 `.ui` 文件保存为 `subWindow.ui` 并通过命令行工具将其转换为 Python 可读的形式[^5]。 ```bash pyuic5 subWindow.ui -o Ui_subWindow.py ``` 接着可以在主程序中导入此模块以初始化子窗口对象。 ```python class SubWindow(QtWidgets.QDialog): def __init__(self): super(SubWindow, self).__init__() uic.loadUi('subWindow.ui', self) # 加载子窗口UI文件 self.btnExit.clicked.connect(self.close) ``` 这里定义了一个简单的对话框形式的子窗口,其中设置了关闭事件处理逻辑以便于用户可以通过点击 “退出” 来隐藏当前视图。 --- #### 3. **集成到应用框架内** 最后一步是把这两个部分结合起来形成完整的应用程序结构。通常情况下会在入口脚本里完成必要的设置工作以及启动循环过程。 ```python if __name__ == '__main__': app = QtWidgets.QApplication([]) main_win = MainWindow() # 初始化主窗口 main_win.show() exit_code = app.exec_() # 进入消息循环直到所有窗口被关闭为止 sys.exit(exit_code) ``` 这样就实现了基于 Qt Designer 所构建出来的图形界面之间的交互行为——即从主页面跳转至次级面板的操作流程[^4]。 --- ### 注意事项 - 确保每次修改 .ui 文件之后重新运行 pyuic 命令更新对应的 python 脚本版本。 - 如果遇到跨平台部署问题,则可能需要调整路径或者依赖库安装情况。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值