iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >PyQt QMainWindow的使用示例
  • 619
分享到

PyQt QMainWindow的使用示例

2024-04-02 19:04:59 619人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录PyQt5 手写 QMainWindow 示例使用designer画出来的界面PyQt4手写窗口代码QMainWindow继承自QWidget QMainWindow相当于程序的

QMainWindow继承自QWidget
QMainWindow相当于程序的主界面,内置了menu和toolBar。
使用 Qt Designer 可以很方便地添加menu选项。

对于较大型的界面,用Qt Designer比较方便。.ui文件就像Android中使用xml一样。
画出的ui文件可以用PyQt中的PyUIC转换成py文件。转换后的py文件中有一个class。
新建一个继承自QMainWindow的类,来调用生成的这个类。

主窗口关闭时,会调用closeEvent(self, *args, **kwargs),可复写这个方法,加上一些关闭时的操作。
比如终止子线程,关闭数据库接口,释放资源等等操作。

PyQt5 手写 QMainWindow 示例

Win7  PyCharm  python3.5.1  PyQt5

手写一个main window,主要使用了菜单栏、文本编辑框、工具栏和状态栏


|-- main.py
|-- res
| `-- sWord.png
`-- ui
 `-- app_main_window.py

main.py主文件


import sys

from PyQt5.QtWidgets import QApplication
from ui.app_main_window import AppMainWindow

if __name__ == '__main__':
 app = QApplication(sys.argv)
 window = AppMainWindow()
 window.show()
 sys.exit(app.exec_())

app_main_window.py窗口实现文件


from PyQt5.QtCore import QCoreApplication
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QAction
from PyQt5.QtWidgets import QMainWindow
from PyQt5.QtWidgets import QTextEdit


class AppMainWindow(QMainWindow):
 """
 菜单栏、文本编辑框、工具栏和状态栏
 """

 def __init__(self):
  super().__init__()
  self.init_ui()

 def init_ui(self):
  # 菜单栏
  self.statusBar().showMessage('Main window is ready')
  self.setGeometry(500, 500, 450, 220)
  self.setMinimumSize(150, 120)
  self.setWindowTitle('MainWindow')

  # 文本编辑框
  text_edit = QTextEdit()
  self.setCentralWidget(text_edit) # 填充剩下的位置

  # 定义退出动作
  exit_action = QAction(QIcon('res/sword.png'), 'Exit', self)
  exit_action.setShortcut('Ctrl+Q')
  exit_action.setStatusTip('Exit App') # 鼠标指向选项时在窗口状态栏出现的提示
  # exit_action.triggered.connect(QCoreApplication.instance().quit)
  exit_action.triggered.connect(self.close) # 关闭app

  # 定义菜单栏,添加一个选项
  menu_bar = self.menuBar()
  file_menu = menu_bar.addMenu('&File')
  file_menu.addAction(exit_action)

  # 定义工具栏,添加一个退出动作
  toolbar = self.addToolBar('&Exit')
  toolbar.addAction(exit_action)

有的时候PyCharm给的代码提示不完全。网上说PyCharm配合vim插件来使用能带来很好的体验。

生成的界面中,工具栏可以自由的拖动,可以放在上下左右4个地方。

同样的代码,可以很方便地移植到PyQt4中。

使用designer画出来的界面

ubuntu

使用designer绘制好界面后,讲ui文件转换成py代码。


import sys
from PyQt5.QtWidgets import QMainWindow, QApplication
from ui_main_window import Ui_UAppMainWindow


class RustMainWindow(QMainWindow):
 """主界面类"""

 def __init__(self):
  super(RustMainWindow, self).__init__()
  self.ma = Ui_UAppMainWindow() # designer画的界面
  self.ma.setupUi(self)


if __name__ == "__main__":
 app = QApplication(sys.argv)
 main_window = RustMainWindow()
 main_window.show()
 sys.exit(app.exec_())

复写__init__初始化方法时需要调用父类方法

PyQt4手写窗口代码

和上面那个功能类似。


import sys
from PyQt4.QtGui import QMainWindow, QTextEdit, QAction, QIcon, QApplication


class AppMainWindow(QMainWindow):
 def __init__(self):
  super(AppMainWindow, self).__init__()
  self.init_ui()

 def init_ui(self):
  self.statusBar().showMessage('Main window is ready')
  self.setGeometry(500, 500, 450, 220)
  self.setMinimumSize(150, 120)
  self.setWindowTitle('MainWindow')

  text_edit = QTextEdit()
  self.setCentralWidget(text_edit)

  exit_action = QAction(QIcon('res/ic_s1.png'), 'Exit', self)
  exit_action.setShortcut('Ctrl+Q')
  exit_action.setStatusTip('Exit App')
  exit_action.triggered.connect(self.close)

  menu_bar = self.menuBar()
  file_menu = menu_bar.addMenu('&File')
  file_menu.addAction(exit_action)

  toolbar = self.addToolBar('&Exit')
  toolbar.addAction(exit_action)


if __name__ == '__main__':
 app = QApplication(sys.argv)
 window = AppMainWindow()
 window.show()
 sys.exit(app.exec_())

可以看出,PyQt4 和 5 的代码基本上是通用的。复写__init__的方法不同。

以上就是PyQt QMainWindow的使用示例的详细内容,更多关于PyQt QMainWindow的使用的资料请关注编程网其它相关文章!

--结束END--

本文标题: PyQt QMainWindow的使用示例

本文链接: https://www.lsjlt.com/news/122044.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PyQt QMainWindow的使用示例
    目录PyQt5 手写 QMainWindow 示例使用designer画出来的界面PyQt4手写窗口代码QMainWindow继承自QWidget QMainWindow相当于程序的...
    99+
    2024-04-02
  • PyQt中怎么使用QMainWindow
    这篇文章给大家分享的是有关PyQt中怎么使用QMainWindow的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。QMainWindow继承自QWidgetQMainWindow相当于程序的主界面,内置了menu和...
    99+
    2023-06-14
  • PyQt中使用QProcess运行一个进程的示例代码
    目录一、前言二、运行一个进程三、启动进程的例子一、前言 设计应用程序时,有时不希望将一个不太相关的功能集成到程序中,或者是因为该功能与当前设计的应用程序联系不大,或者是因为该功能已经...
    99+
    2022-12-24
    PyQt使用QProcess运行进程 PyQt使用QProcess PyQt运行进程
  • 关于使用pyqt弹出消息提示框的问题
    目录安装 pyqt安装遇到问题还有 To avoid this problem you can invoke Python with '-m pip' instead...
    99+
    2024-04-02
  • Python的PyQt框架的使用(汇总)
    Python的PyQt框架的使用 一、前言二、安装PyQt三、使用第三方开发工具四 、创建主窗体五、常用控件篇1.QLineEdit 文本框2.QPushButton按钮控件3.QRadioB...
    99+
    2023-09-07
    python pyqt qt
  • 如何解决使用pyqt弹出消息提示框的问题
    这篇文章给大家分享的是有关如何解决使用pyqt弹出消息提示框的问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。安装 pyqtPyQt5是python模块,可让您非常快速地构建GUI应用程序。通常将它与Tkint...
    99+
    2023-06-26
  • PyQt5中的QMainWindow类有什么用
    QMainWindow类是PyQt5中的一个重要类,用于创建一个主窗口。主窗口通常包含菜单栏、工具栏、状态栏和中心部件等元素,可以承...
    99+
    2024-03-12
    PyQt5
  • pyqt 显示图片的若干方法
    date: 2022-11-30 14:23 status: public title: ‘pyqt 显示图片的若干方法’ 单张图片 使用lable 显示图片 特点是最简单,但功能也最少。 #!...
    99+
    2023-09-21
    pyqt ui python QListWidget scrollArea
  • PyQt与pycharm的结合使用教程
    目录PyQt的使用与pycharm的结合环境安装PyQt的使用与pycharm的结合 环境安装 pip install pyqt5 -i https://pypi.tuna.tsin...
    99+
    2023-05-19
    PyQt与pycharm使用 PyQt使用
  • phpmyadmin的使用示例
    这篇文章主要介绍phpmyadmin的使用示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、创建数据库在 phpMyAdmin 的主界面中,可以看见有 “语言-languange...
    99+
    2024-04-02
  • Ajax的使用示例
    这篇文章给大家分享的是有关Ajax的使用示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Ajax 简介Ajax被认为是(Asynchronous(异步) JavaScript ...
    99+
    2024-04-02
  • vue的使用示例
    这篇文章给大家分享的是有关vue的使用示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。vue是什么Vue是一套用于构建用户界面的渐进式JavaScript框架,Vue与其它大型框架的区别是,使用Vue可以自底向...
    99+
    2023-06-14
  • React Hook的使用示例
    目录一个简单的组件案例 更复杂的父子组件案例 如何写onSelectReact.ChildrenReact.cloneElement父组件数据如何传递给子组件index数据...
    99+
    2024-04-02
  • Spring Session的使用示例
    目录SessionSession常用解决方案Spring-Session测试代码基于数据库的Spring-Session基于Redis的Spring-Session总结Session...
    99+
    2024-04-02
  • Lumen使用Redis的示例
    这篇文章将为大家详细讲解有关Lumen使用Redis的示例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1. 安装扩展要使用redis必须安装两个扩展 comp...
    99+
    2024-04-02
  • React ref的使用示例
    目录什么是 ref 如何使用 ref 放在 dom 元素上放在类组件上 放在函数组件上 总结 写了一段时间的 react,99%都在写 state、prop、useState、use...
    99+
    2024-04-02
  • Java ConcurrentHashMap的使用示例
    目录构造方法方法介绍reduce归约构造方法 // 1.无参数构造方法 new ConcurrentHashMap(); // 2.指定初始容量 new ConcurrentH...
    99+
    2024-04-02
  • python编程使用PyQt创建UE蓝图
    目录实现思路1、场地部署2、节点创建3、连线①首先是连线类的创建②如何连接节点实现思路 1、场地部署:我们需要拥有一个可以用来画节点的地方!详看我这篇文章QGraphicsScene...
    99+
    2024-04-02
  • python中pip的使用示例
    这篇文章主要介绍了python中pip的使用示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面...
    99+
    2023-06-14
  • 使用MySQL的示例分析
    这篇文章主要介绍了使用MySQL的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。属性表(product_props)结构如下数据量8...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作