QMainWindow是Qt 框架带来的一个预定义好的主窗口类。一个主窗口一般都是由下图所示部分组成。 ? 我们在创建Qt应用程序的时候,就可以选择主窗口继承自QMainWindow。
Qt 窗口 Qt 窗口是通过 QMainWindow类 来实现的。 QMainWindow 是一个为用户提供主窗口程序的类,继承自 QWidget 类,并且提供了一个预定义的布局。 QMainWindow 包含一个菜单栏(menu bar)、多个工具栏(tool bars)、多个浮动窗口(铆接部件)(dock widgets)、⼀个状态栏(status bar) 和⼀个 中心部件( 如下图为 QMainwindow 中 各组件所处的位置: 一、菜单栏 Qt 中的菜单栏是通过 QMenuBar 这个类来实现的。⼀个主窗口最多只有⼀个菜单栏。位于主窗口顶部、主窗⼝标题栏下面。 创建菜单栏并添加菜单 菜单栏的创建可以借助于 QMainWindow类 提供的 menuBar() 函数来实现。创建菜单,并通过 QMenu 提供的 addMenu() 函数 来添加菜单。 创建工具栏 调⽤ QMainWindow类 的 addToolBar() 函数来创建⼯具栏,每增加⼀个⼯具栏都需要调⽤⼀次该函数。
QMainWindow 概述 Qt 窗口是通过 QMainWindow 类来实现的。 QMainWindow 是一个为用户 提供主窗口程序的类。 如下图为 QMainwindow 中各组件所处的位置 1. 菜单栏 Qt 中的菜单栏是通过 QMenuBar 这个类来实现的。一个主窗口最多只有一个菜单栏,位于主窗口顶部、主窗口标题栏下面。 1.1 具体使用 一、创建菜单栏 (1)方式一 菜单栏的创建可以借助于 QMainWindow 类提供的 menuBar() 函数来实现。 (1)新建 Qt 项目 注意:此时新建项目时选择的基类 QMainwindow !!! 如下图为工具栏的示意图: 一、创建菜单栏 调用 QMainWindow 类的 addToolBar() 函数来创建工具栏,每增加⼀个工具栏都需要调用一次该函数。
上几篇文章我们使用 QMainWindow 添加了菜单栏、工具栏、状态栏等控件,他们分别在窗口中起到不同的作用。 include #include #include #include #include #include CMainWindow::CMainWindow(QWidget *parent) : QMainWindow
QMainWindow继承自QWidget QMainWindow相当于程序的主界面,内置了menu和toolBar。 使用 Qt Designer 可以很方便地添加menu选项。 新建一个继承自QMainWindow的类,来调用生成的这个类。 主窗口关闭时,会调用closeEvent(self, *args, **kwargs),可复写这个方法,加上一些关闭时的操作。 PyQt5 手写 QMainWindow 示例 Win7 PyCharm Python3.5.1 PyQt5 手写一个main window,主要使用了菜单栏、文本编辑框、工具栏和状态栏 |-- from PyQt5.QtWidgets import QTextEdit class AppMainWindow(QMainWindow): """ 菜单栏、文本编辑框、工具栏和状态栏 (QMainWindow): def __init__(self): super(AppMainWindow, self).
QMainWindow中使用这个方法的时候却不管用,因为QMainWindow是默认有layout的,所以再次设置layout会失效。 该如何给QMainWindow正确地设置布局呢 要想QMainWidget创建布局,合理的步骤应该是这样的: 第一步创建一个QWidget实例,并将这个实例设置为centralWidget: 另一种方法: QApplication a(argc, argv); QMainWindow w; w.show(); QWidget window; QSpinBox
PyQt 主窗口(QMainWindow)主要包括五大部分: 中心窗口部件:可以是单个部件,也可是复合部件,位于主窗口的中心,是用户操作的主要区域。 后续会详细介绍主窗口(QMainWindow)程序各个部分的写法。推荐在浏览器中打开并横屏查看代码。 PyQt5.QtPrintSupport import QPrinter, QPrintDialog, QPrintPreviewDialog import os class MainWindow(QMainWindow
QMainWindow介绍 主窗口是与用户进行长时间交互的顶层窗口,比如记事本 主窗口通常是应用程序启动后显示的第一个窗口 QMainWindow是Qt中主窗口的基类,继承于QWidget,如下图所示 QMainWindow和其它类不同,如下图所示: ? QMainWindow组件布局 ? 1.菜单栏 QT中提供了预定义的与菜单相关的类组件: ?
在PyQt5当中常用的主窗体有两种QMainWindow和QDialog。当然这两个也是继承自QWidget类。 窗口类型 QMainWindow窗口可以包含菜单栏,工具栏,状态栏,标题栏等,所以是我们最常用的窗口形式。 主窗口的使用 在这里我们先看一下最常用的主窗口类QMainWindow,它为用户提供了一个应用程序框架,包含有自己的布局,可以在布局中添加控件。 看一下下面的这张图片就是QMainWindow。 主窗口布局区域 因为QMainWindow继承自QWidget,所以拥有它的所有派生类方法和属性。而QMainWindow中有几个比较重要的方法。 class Example(QMainWindow) 首先创建一个类继承自QMainWindow,然后执行初始化函数initUI() self.widget = QWidget() self.setCentralWidget
annotationsimport sysfrom datetime import datetimefrom PySide6.QtWidgets import QApplication, QLabel, QMainWindow : new_window = QMainWindow() label = QLabel("这是新窗口,编号:{}".format(get_time_str()), new_window) : new_window = QMainWindow() label = QLabel("这是新窗口,编号:{}".format(get_time_str()), new_window) __init__() self.tmp_window = QMainWindow() # 初始化一个窗口 button = QPushButton("显示第二个 QWidget : new_window = QMainWindow() label = QLabel("这是新窗口,编号:{}".format(get_time_str()), new_window)
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 # -*- coding:utf-8 -*-# 作者:虫无涯# 日期:2023/10/19 # 文件名称:test018_FirstQwidget.py# 作用:QMainWindow应用# 联系:VX
class MyMainWindow(QMainWindow): def __init__(self): super(). ):定义了一个名为 MyMainWindow 的类,它继承自 QMainWindow 类。 QMainWindow 是Qt框架中用于创建和管理主窗口的一个类,这意味着 MyMainWindow 类将拥有 QMainWindow 的所有功能和属性。 __init__() 这行代码调用了父类 QMainWindow 的构造函数,确保了父类被正确初始化。super() 函数用于访问父类的方法和属性。 class MyLabel(QMainWindow): def __init__(self): super().
annotationsimport sysfrom datetime import datetimefrom PySide6.QtWidgets import QApplication, QLabel, QMainWindow : new_window = QMainWindow() label = QLabel("这是新窗口,编号:{}".format(get_time_str()), new_window) : new_window = QMainWindow() label = QLabel("这是新窗口,编号:{}".format(get_time_str()), new_window) __init__() self.tmp_window = QMainWindow() # 初始化一个窗口 button = QPushButton("显示第二个 QWidget : new_window = QMainWindow() label = QLabel("这是新窗口,编号:{}".format(get_time_str()), new_window)
QMainWindow 定义:QMainWindow 是 QWidget 的一个子类,专门用于创建主窗口。 特点:QMainWindow 支持MDI(多文档界面),可以嵌入多个子窗口。它还提供了窗口系统菜单和状态栏的集成。 联系 继承关系:QMainWindow 和 QDialog 都是 QWidget 的直接子类,共享 QWidget 的所有功能和属性。 功能区分:虽然 QMainWindow 和 QDialog 都可以包含其他控件和布局,但它们在应用程序中的角色和行为不同。 QMainWindow 作为应用程序的主要工作区,而 QDialog 用于特定的交互任务。
-- coding: utf-8 -- ''' 【简介】 界面背景图片设置 ''' import sys from PyQt5.QtWidgets import QMainWindow, QApplication app = QApplication(sys.argv) win = QMainWindow() win.setWindowTitle("界面背景图片设置") win.resize(350, 250 app.exec_()) ---- -- coding: utf-8 -- ''' 【简介】 界面背景图片设置 ''' import sys from PyQt5.QtWidgets import QMainWindow QApplication from PyQt5.QtGui import QPalette, QBrush, QPixmap app = QApplication(sys.argv) win = QMainWindow 界面背景颜色设置 ''' from PyQt5.QtWidgets import QApplication, QLabel ,QWidget, QVBoxLayout , QPushButton, QMainWindow
# 从 PyQt5 中导入所需的类 # 创建一个主窗口类,继承自 QMainWindow class MainWindow(QMainWindow): def __init__(self) class MainWindow(QMainWindow): 作用:定义了一个名为 MainWindow 的类,继承自 QMainWindow。 QMainWindow:是一个高级窗口控件,继承自 QWidget,但是它具有更多的功能,比如菜单栏、工具栏、状态栏等。你可以把 QMainWindow 理解为一个“带更多功能的高级窗口”。 , QPushButton, QLabel # 创建一个主窗口类,继承自 QMainWindow class MainWindow(QMainWindow): def __init__(self 代码示例: from PyQt5.QtWidgets import QApplication, QMainWindow, QLineEdit import sys class MainWindow(QMainWindow
二、创建PyQt5应用程序窗口 import sys from PyQt5.QtWidgets import QApplication, QMainWindow if __name__ == '__main __': app = QApplication(sys.argv) # 创建主窗口 window = QMainWindow() window.setWindowTitle QLabel, QPushButton if __name__ == '__main__': app = QApplication(sys.argv) window = QMainWindow print('按钮被点击了') if __name__ == '__main__': app = QApplication(sys.argv) window = QMainWindow QVBoxLayout, QWidget if __name__ == '__main__': app = QApplication(sys.argv) window = QMainWindow
QMainWindow类提供了一个应用主窗口。默认创建一个拥有状态栏、工具栏和菜单栏的经典应用窗口骨架。 通过QMainWindow你可以添加自己的QToolBars、QDockWidgets、QMenuBar、QStatusBar等。 ? 代码: import sys from PyQt5.QtWidgets import QMainWindow, QApplication, QMenuBar, QAction, qApp, QTextEdit from PyQt5.QtGui import QIcon from PyQt5.QtCore import QCoreApplication class Test(QMainWindow): toolbar.addAction(exitAction) self.setGeometry(300, 300, 400, 400) self.setWindowTitle('QMainWindow
QMainWindow类提供了一个应用主窗口。默认创建一个拥有状态栏、工具栏和菜单栏的经典应用窗口骨架。 import sys from PyQt5.QtWidgets import QMainWindow, QApplication class Example(QMainWindow): def 组件帮助创建完成(依赖于QMainWindow组件)。 QIcon class Example(QMainWindow): def __init__(self): super(). 并且将QtGui.QMainWindow的quit()方法连接到了触发信号上。
window.setToolTip('Tip Info 这是按钮的提示信息') # window.setText('Button Text 按钮展示的信息') window.show() app.exec() 从 QMainWindow 继承 from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton class MyPushButton(QMainWindow button.show() app.exec() 使用信号与槽对按钮的点击动作进行响应 实现代码 import sys from PySide6.QtWidgets import QApplication, QMainWindow , checked) class MyPushButton(QMainWindow): def __init__(self): super().