首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

带工具栏的QMainWindow上的PyQt5 - drawPixmap (不适合窗口)

PyQt5是一个流行的Python GUI库,可以用于创建图形用户界面。QMainWindow是PyQt5中的一个窗口类,它提供了一个带有工具栏、菜单栏和状态栏的主窗口。

drawPixmap是QPainter类中的一个方法,用于在窗口上绘制一个图像。它接受一个QRect对象作为参数,指定要绘制的图像的位置和大小。

然而,根据问题描述,使用drawPixmap方法在带有工具栏的QMainWindow上绘制图像可能不是一个合适的选择。因为工具栏通常位于窗口的顶部,绘制图像可能会被工具栏遮挡。

如果要在带有工具栏的QMainWindow上绘制图像,可以考虑使用QGraphicsView和QGraphicsScene类。QGraphicsView提供了一个可视化的视图,可以在其中显示QGraphicsScene中的图形项。可以通过将QGraphicsPixmapItem添加到QGraphicsScene中来显示图像。

以下是一个示例代码,演示了如何在带有工具栏的QMainWindow上使用QGraphicsView和QGraphicsScene绘制图像:

代码语言:python
代码运行次数:0
复制
from PyQt5.QtWidgets import QMainWindow, QApplication, QGraphicsView, QGraphicsScene
from PyQt5.QtGui import QPixmap
import sys

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        # 创建一个QGraphicsView和QGraphicsScene
        self.view = QGraphicsView()
        self.scene = QGraphicsScene()
        self.view.setScene(self.scene)

        # 设置主窗口的中央部件为QGraphicsView
        self.setCentralWidget(self.view)

        # 加载图像
        pixmap = QPixmap("image.jpg")

        # 创建一个QGraphicsPixmapItem,并将其添加到QGraphicsScene中
        pixmap_item = self.scene.addPixmap(pixmap)

        # 调整视图的大小以适应图像
        self.view.fitInView(pixmap_item, aspectRatioMode=Qt.KeepAspectRatio)

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

在上面的示例中,我们创建了一个MainWindow类,继承自QMainWindow。在构造函数中,我们创建了一个QGraphicsView和QGraphicsScene,并将QGraphicsView设置为主窗口的中央部件。然后,我们加载图像并创建一个QGraphicsPixmapItem,并将其添加到QGraphicsScene中。最后,我们调整视图的大小以适应图像,并显示主窗口。

这是一个简单的示例,演示了如何在带有工具栏的QMainWindow上绘制图像。根据具体需求,您可以根据自己的情况进行修改和扩展。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

PyQt5窗口QMainWindow简介

看过上一篇我们知道,在PyQt5中了,所有的控件都是继承自。在桌面应用当中,我们常用软件都会包含一个主窗口。主窗口就是承载所有控件一个窗体。...在PyQt5当中常用主窗体有两种QMainWindow和QDialog。当然这两个也是继承自QWidget类。...窗口类型 QMainWindow窗口可以包含菜单栏,工具栏,状态栏,标题栏等,所以是我们最常用窗口形式。...QDialog是对话框窗口基类对话框,主要用来执行短期任务或者与用户进行互动,它可以是模态,也可以是非模态。对话框没有菜单栏、工具栏、状态栏。...QWidget继承关系图 对于主窗口选择如果包含状态栏、工具栏、菜单栏等可以使用QMainWindow。如果只是对话框形式不包含以上几种就可以使用QDialog。

3.8K31

python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例

关于这两个函数用法,可以参考本博客下PyQt5基础控件分栏 实例:QSS设置窗口背景 import sys from PyQt5.QtWidgets import QMainWindow, QApplication...app = QApplication(sys.argv) win = QMainWindow() #设置窗口标题与初始大小 win.setWindowTitle("界面背景图片设置") win.resize...当背景图片宽度高度小于窗口宽度高度时,则会加载多个背景图片 实例:QPalette设置窗口背景 import sys from PyQt5.QtWidgets import QMainWindow,...不规则窗口实例 2 使用两张图片,一张用来做遮罩来控制窗口大小,然后在利用paintEvent()函数重绘另一张为窗口背景图。...本文主要介绍了python GUI库PyQt5窗口背景与不规则窗口实例,大家可以参考下,更多关于这方面的文章大家可以点击下面的相关链接

2.9K22
  • 『PyQt5-基础篇』| 01 简单基础了解

    使用PyQt扩展Qt DesignerQt将所有模块中类综合到一个单一模块中 uic 处理.ui文件2.2 PyQt5主要类PyQt5 API拥有620多个类和6000个函数;以下是主要类和说明:...用户界面对象基类QFrame有框架窗口控件基类QMainWindow有菜单栏、锚接窗口(如工具栏)和状态栏主应用程序窗口QDialog最普通顶级窗口 2.3 重要类继承关系PyQt 5中重要类及其继承关系...显示文本或图像QLineEdit 一个单页面的单行文本编辑器 QTextEdit一个单页面的多行文本编辑器QPushButton命令按钮 QRadioButton单选按钮和一个文本或像素映射标签QCheckBox文本标签复选框...,用于弹出列表QMenuBar横向菜单栏 QStatusBar适合呈现状态信息水平条,通常放在QMainWindow底部QToolBar工具栏,可以包含多个命令按钮,通常放在QMainWindow顶部...QListView显示和控制可选多选列表,可以设置ListMode或IconModeQPixmap在绘图设备显示图像,通常放在QLabel或QPushButton类中 Qdialog对话框窗口基类

    36760

    PyQt QMainWindow 简单使用

    新建一个继承自QMainWindow类,来调用生成这个类。 主窗口关闭时,会调用closeEvent(self, *args, **kwargs),可复写这个方法,加上一些关闭时操作。...PyQt5 手写 QMainWindow 示例 Win7 PyCharm Python3.5.1 PyQt5 手写一个main window,主要使用了菜单栏、文本编辑框、工具栏和状态栏 |--...from PyQt5.QtWidgets import QTextEdit class AppMainWindow(QMainWindow): """ 菜单栏、文本编辑框、工具栏和状态栏...网上说PyCharm配合vim插件来使用能带来很好体验。 生成界面中,工具栏可以自由拖动,可以放在上下左右4个地方。 同样代码,可以很方便地移植到PyQt4中。...(sys.argv) window = AppMainWindow() window.show() sys.exit(app.exec_()) 可以看出,PyQt4 和 5 代码基本是通用

    1.2K20

    python GUI库图形界面开发之PyQt5打印控件QPrinter详细使用方法与实例

    PyQt5打印控件QPrinter简介 打印图像是图像处理软件中一个常用功能,打印图像实际是在QPaintDevice中画图,与平时在QWidget。...QPixmap和QImage中画图是一样,都是创建一个QPainter对象进行画图,只是打印使用是QPrinter,它本质也是一个QPainterDevice(绘图设备) QPrinter使用实例...addMenu(self.tr('打印')) PrintMenu.addAction(self.PrintAction) def createToolBars(self): #在工具栏区域内添加控件...()) #设置窗口大小为图片尺寸,并在窗口内绘制图片 painter.setWindow(self.image.rect) painter.drawImage(...本文详细讲解了PyQt5打印控件QPrinter详细使用方法与实例,更多关于PyQt5控件知识请查看下面的相关链接

    2.5K11

    PyQt5-基本控件| 主窗口类型、创建以及代码如何实现?

    1 主窗口类型PyQt中窗口部件:QMainWindow,QWidget,QDialog。...窗口分类 说明 QMainWindow包含菜单栏,工具栏,状态栏,标题栏,是最常见窗口形式QDialog对话窗口基类,一般用于执行一些短期任务,无上述几个栏QWidget 不确定窗口用途就使用Widget...,可作为顶层窗口QMainWindow),可以嵌入到其他窗口2 QMainWindow2.1 常用方法QMainWindow就是一个顶层窗口,它可以包含很多界面元素,如菜单栏、工具栏、状态栏、子窗口等等...;源码可参考源码:图片PyQt5\QtWidgets\QMainWindow.py2.1.1 addToolBar添加工具栏; def addToolBar(self, *__args): # real...() self.info.showMessage("这是一个标准窗口写法", 6000)if __name__ == "__main__": app = QApplication(

    39750

    【Python】GUI:PyQt5环境搭建与示例

    PyQt是基于python来开发Qt可视化窗口简称,Qt本身是基于C++开发,性能较好,Qt与Python结合后,在Python支持下可以快速地开发桌面应用程序。 1....PyQt5介绍 PyQt5开发主要包括: Qt Designer PyQt5基本窗口控件(QMainWindow、QWidget、QLabel、QLineEdit、菜单、工具栏等) PyQt5高级组件...) PyQt5图形与特效(定制窗口风格、绘图、qss与UI美化、不规则窗口、设置样式等) PyQt5扩展应用(制作安装程序、数据处理、第三方绘图库、UI自动化测试等) 2....PyQt5模块 python安装不用多说,在下面地址下载即可,这里我是3.6.8。...# 移动窗口 w.move(300,300) # 设置窗口标题 w.setWindowTitle('第一个基于PyQt5桌面应用') # 显示窗口

    26510

    python GUI库图形界面开发之PyQt5 MDI(多文档窗口)QMidArea详细使用方法与实例

    PyQt5 MDI(多文档窗口)QMidArea简介 一种同时显示多个窗口方法是,创建多个独立窗口,这些独立窗口被称为SDI(Single Document Interface 单文档界面),每个窗口都有自己菜单系统...,工具栏等,这需要占用很多资源 MDI(Multiple Document Interface 多文档界面)应用程序占用较少内存资源,子窗口可以放在主窗口容器中,这个容器控件被称为QMidArea...QMidArea控件通常占据在QMainWindow对象中央位置,子窗口在这个区域是QMdiSubWindow类实例,可以设置任何QWidget作为子窗口对象内部控件,子窗口在MDI区域进行级联排列布局...()=='Tiled': #tileSubWindow():安排子窗口在Mdi区域平铺显示 self.mdi.tileSubWindow() 本文主要讲解了PyQt5 MDI(多文档窗口...)QMidArea详细使用方法与实例,更多关于PyQt5控件使用知识请查看下面的相关链接

    3.7K21

    Qt For Python按钮控件使用实例

    在创建按钮控件之前,我们先来创建一个包含布局层图形界面主窗口,作为按钮控件容器,代码如下所示: # coding:utf-8 from PyQt5 import QtWidgets import sys...直接实例化一个文本按钮控件 我们可以直接实例化一个字符串参数QPushButton()来创建一个按钮,例如: self.btn_1 = QtWidgets.QPushButton("按钮一")...我们将其添加到上面创建窗口中,代码如下所示: # coding:utf-8 from PyQt5 import QtWidgets import sys class ButtonApp(QtWidgets.QMainWindow...") 将其添加到第二个按钮创建代码之下,运行新代码,可以看到,主窗口第二个按钮已经有了文字,如下图所示: ?...,里面用来print(),然后使用按钮3clicked信号连接到clicks()方法,最后当我们点击按钮3时候,控制台就会打印出字符串来,如下动图所示: ?

    4.1K10

    python GUI库图形界面开发之PyQt5工具栏控件QToolBar详细使用方法与实例

    PyQt5工具栏控件QToolBar介绍 QToolBar控件是由文本按钮,图标或其他小控件按钮组成可移动面板,通常位于菜单栏下方 QToolBar类中常用方法 方法 描述 addAction()...添加具有文本或图标的工具按钮 addSeperator() 分组显示工具按钮 addWidget() 添加工具栏中按钮以外控件 addToolBar() 使用QMainWindow方法添加一个新工具栏...setMovable() 工具变得可移动 setOrientation() 工具栏方向可以设置为Qt.Horizontal或Qt.certical 每当单击工具栏按钮时,都将发射actionTriggered...QToolBar代码分析 在这个例子中,首先调用addToolBar()方法在工具栏区域添加文件工具栏 tb=self.addToolBar('File') 然后,添加具有文本标题工具按钮,工具栏通常包含图形按钮...工具栏控件QToolBar详细使用方法与实例,更多关于PyQt5库控介绍请查看下面的相关链接

    1.8K21

    python GUI库图形界面开发之PyQt5窗口QMainWindow详细使用方法

    QMainWindow QMainWindow类中比较重要方法 方法 描述 addToolBar() 添加工具栏 centralWidge() 返回窗口中心一个控件,未设置时返回NULL menuBar...() 返回主窗口菜单栏 setCentralWidget() 设置窗口中心控件 setStatusBar() 设置状态栏 statusBar() 获得状态栏对象后,调用状态栏对象showMessage...,第二个参数是信息停留时间,单位是毫秒,默认是0,表示一直显示状态栏信息 注意:QMainWindow不能设置布局(使用setLayout()方法),因为它有自己布局 创建主窗口实例 #下面这行代码是为了避免在所生成...#初始化继承父类(Qmainwindow) super(MainWindow, self)....本文主要讲解了python GUI库图形界面开发之PyQt5窗口QMainWindow详细使用方法,了解更多相关文章请查看下面的相关链接

    2.5K51

    使用Qt Designer 设计主窗口

    双击想要完善QAction,进入动作编辑界面: ? 在这里,我们可以设定动作对象名,工具栏提示,图标,快捷键等。还可以设置动作是否为 可选动作(Checkable)。...1.5 创建各个工具条 在工具栏区域有键, 选择 Add Tool Bar,可以创建空工具条。然后,从动作编辑器拖动(按住左键)想要 QAction 到工具条。可拖动以修改工具条按钮顺序。...1.6 创建中心窗口 从 设计师界面 左边 部件盒子拖动 中心窗口所需部件到 中心窗口区域。然后编辑好各部件属性。最后在对象检查器 选定 centralwidget,设定中心窗口布局。...否则,就要进行必要修改。 2. 用 PyQt5 pyuic5 命令将 .ui 文件转化成 .py 文件(参见《使用Qt Designer 设计对话框(二)》篇) 3....先在主程序中导入一步创建 py文件中类 Ui_MainWindow, 接着 以多重继承方式 (先后继承 QMainWindow、Ui_MainWindow),创建 主窗口子类。

    4.6K31

    PyQt4应用程序PDF查看器

    以下就是我写一个简单示例代码,演示如何创建一个PyQt4应用程序PDF查看器:1、问题背景我想编写一个Python+Qt4应用程序,该应用程序需要时不时地弹出一个窗口,以显示PDF文档并允许一些非常基本操作...它提供了许多有用功能,包括:将PDF文档渲染到内存或X11窗口允许用户滚动、平移和缩放文档允许用户打印文档Poppler库可以与Python绑定在一起,以便在Python应用程序中使用。...Document, Page​class PDFViewer(QtGui.QMainWindow): def __init__(self): super()....Poppler库提供了许多有用功能,包括将PDF文档渲染到内存或X11窗口、允许用户滚动、平移和缩放文档以及允许用户打印文档。...运行这段代码将显示一个简单PyQt4 PDF查看器应用程序,可以在窗口中查看指定PDF文件。PyQt4已经比较老旧,建议升级到PyQt5或PyQt6以获得更好性能和功能支持。

    12210

    PyQT模块、类、控件介绍

    QMainWindow类 提供一个有菜单栏、锚接窗口(如工具栏)和状态栏主应用程序窗口。 QWidget类 所有用户界面对象基类。...窗口控件 提供了一个命令按钮 QRadioButton控件 提供了一个单选钮和一个文本或像素映射标签 QCheckBox窗口控件 提供了一个文本标签复选框 QspinBox控件 允许用户选择一个值,...控件 一个组合按钮,用于弹出列表 QMenuBar控件 提供了一个横向菜单栏 QStatusBar控件 提供了一个适合呈现状态信息水平条,通常放在QMainWindow底部 QToolBar控件 提供了一个工具栏...,可以包含多个命令按钮,通常放在QMainWindow顶部 QListView控件 可以显示和控制可选多选列表,可以设置ListMode或IconMode QPixmap控件 可以在绘图设备显示图像...QMainWindow:继承自QWidget类,是一个顶层窗口,它可以包含很多界面元素,如菜单栏、工具栏、状态栏、子窗口等。

    51931

    python GUI库图形界面开发之PyQt5QMainWindow, QWidget以及QDialog区别和选择

    三种模板区别(官方文档介绍) MainWindow QMainWindow类提供一个有菜单条、锚接窗口(例如工具条)和一个状态条主应用程序窗口。...Widget QWidget类是所有用户界面对象基类。 窗口部件是用户界面的一个原子:它从窗口系统接收鼠标、键盘和其它事件,并且在屏幕绘制自己表现。...在Qt中,QMainWindow和和不同QDialog子类是最普通顶级窗口。 一个没有父窗口部件窗口部件一直是顶级窗口部件。 3....如何选择QMainWindow,QWidget,QDialog 大致理解是: QMainWindow是完整窗体,在window可以加入widget,适合于完整项目,因为它封装了toolbar,statusbar...区别和怎样选择选择,更多关于python GUI库图形界面开发PyQt5开发请查看下面的相关链接

    3K11

    PyQt5 入门

    菜单与工具 5.1 加载其他窗口 主窗体 py 子窗口 py 调用主程序 py 测试 6. 打包资源 learn from 《PyQt5 快速开发与实战》 1....__init__(parent) self.setGeometry(100, 100, 700, 350) # 窗口左上角坐标,窗口宽高 self.setWindowTitle...信号、槽关联 信号发射,连接槽函数将会自动执行,连接使用QObject.signal.connect() 添加方法: 窗口UI设计中添加 写代码连接信号、槽 Eric “生成对话框代码”功能 4.1...简单入门 创建 Widget 窗口,实现一个关闭按钮 拖入button,更改 text 为显示文字,更改objectName 为 closeWin 使用 Eric 测试 4.2...菜单与工具 新建 mainWindow 输入 文件(&F)括号内是快捷键设置 子菜单 添加快捷键 添加工具栏 添加动作 添加信号、槽

    1.4K40

    Qt Designer快速入门(python GUI 可视化界面搭建)

    在模板选项中,最常用就是Widget(通用窗口)和 Main Window(主窗口)。...新建窗体 模板选择“Main Window”,创建一个主窗口,保存并命名为firstMainWin.ui,如图所示,主窗口默认添加了菜单栏、工具栏和状态栏。...1)通过pycharm设置Tools 设置方式详见上节: PyQt5环境搭建-最新 PyQt5官方网站是:https://www.riverbankcomputing.com/。...安装PyQt5有两种方式:既可以下载PyQt5最新源码进行编译安装,也可以使用pip install 进行在线安装。...2)通过命令行把.ui文件转换为.py文件 PyQt 5安装成功后,pyuic5命令默认安装在%/python3x/Scripts目录下,在笔者机器pyuic5安装路径是C:\Users\Administrator

    2.3K40

    Python Qt GUI设计:将UI文件转换为Python文件三种妙招(基础篇—2)

    Qt Creator 界面很简洁,上方是主菜单栏,左侧是主工具栏窗口中间部分是工作区。根据设计内容不同,工作区会显示不同内容。...主窗口左侧是主工具栏,主工具栏提供了项目文件编辑、窗体设计、程序调试、项目设置等各种功能按钮。 在左侧主工具栏单击“Welcome(欢迎)”按钮后显示实例界面。...Qt for Python - Window,创建一个包含空窗口Qt用于Python应用程序。...2.3、脚本编译 有些朋友可能对2.2、Python命令行编译方式不熟悉或者不太喜欢,这里再拓展讲讲Python脚本编译方法,脚本本质是用Python代码把上述操作封装起来,脚本代码如下所示: import...实现界面与逻辑分离方法很简单,只需要新建一个逻辑处理Python文件,继承界面文件窗口类即可,后续项目我们会讲到实际应用。

    3.2K60

    使用PyQt5创建文件对话框和文本对话框ui窗口程序

    在本文其他文章中有一个实现旧编码替换为新编码小项目,因为窗口程序比较直观,所以需要改造相关代码以生成窗口程序。...本文记录了如何将该项目改造成一个包含2个文件对话框、1个文本显示框窗口程序,2个文件对话框分别用于选择新旧编码对照表.xlsx和mdb文件,文本显示框用于打印必要信息。...3)通过添加centralwidget中心布局,实现了窗口控件大小可变。...ui文件,执行(以下是我电脑处理办法): pyuic5 E:\00_ProgramFiles_LYN\Anaconda3\Library\bin\mdb_code.ui –o E:\00_ProgramFiles_LYN...\Anaconda3\Library\bin\mdb_code.py Step3: 在自定义py文件中,编写自己类并实现step2中py文件中Ui_MainWindow类中方法 略 Step4

    1.2K10
    领券