PyQt5 GUI编程(QMainWindow与QWidget模块结合使用)

这篇具有很好参考价值的文章主要介绍了PyQt5 GUI编程(QMainWindow与QWidget模块结合使用)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.简介

QWidget是所有用户界面对象的基类,而QMainWindow用于创建主应用程序窗口的类。它是QWidget的一个子类,提供了创建具有菜单栏、工具栏、状态栏等的主窗口所需的功能。上篇主要介绍了基本使用,创建窗口时都是继承单个模块,本章主要介绍下两个模块的结合使用。

二.具体用法

1.我们先来创建一个类来继承QMainWindow实现一个简单的窗口

import sys

from PyQt5.QtWidgets import QApplication, QMainWindow


class FileChooserApp(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # 设置窗口的标题和大小
        self.setWindowTitle('文件选择器')
        self.setGeometry(300, 300, 500, 500)


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

2.在主窗口中添加一个文本编辑器,使用垂直布局来分布展示

    def initUI(self):
        ql = QTextEdit()
        central_widget = QWidget()
        self.setCentralWidget(central_widget)  # 创建一个中心部件
        vbox = QVBoxLayout(central_widget)  # 创建一个垂直布局
        vbox.addWidget(ql)
        vbox.addStretch(1)
        central_widget.setLayout(vbox)  # 添加到布局器中

上述中我们在主窗口中创建一个中心部件将实例化后的central_widget 添加进去,这样就可以设置我们想要的布局了。

3.具体效果

PyQt5 GUI编程(QMainWindow与QWidget模块结合使用)

三.实例

PyQt5 GUI编程(QMainWindow与QWidget模块结合使用)PyQt5 GUI编程(QMainWindow与QWidget模块结合使用)
import sys

from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QFileDialog, QMainWindow, QAction, QTextEdit


class FileChooserApp(QMainWindow):
    def __init__(self):
        super().__init__()
        self.ql = QTextEdit()
        self.initUI()

    def initUI(self):
        action = QAction('打开', self)  # 创建QAction实例
        action.setShortcut('Ctrl+a')  # 设置快捷键操
        action.triggered.connect(self.openFileNameDialog)
        menubar = self.menuBar()  # 创建一个菜单栏
        menu_open = menubar.addMenu('文件')  # 设置菜单栏tab
        menu_open.addAction(action)  # 关联事件

        action_updata = QAction('删除', self)  # 创建QAction实例
        action_updata.setShortcut('Ctrl+d')  # 设置快捷键操
        action_updata.triggered.connect(self.text_del)

        action_a = QAction('保存', self)  # 创建QAction实例
        action_a.triggered.connect(self.ctrl_s)

        menubar_updata = self.menuBar()  # 创建一个菜单栏
        menu_updata = menubar_updata.addMenu('编辑')  # 设置菜单栏tab
        menu_updata.addAction(action_updata)  # 关联事件
        menu_updata.addAction(action_a)  # 关联事件

        central_widget = QWidget()
        self.setCentralWidget(central_widget)
        vbox = QVBoxLayout(central_widget)  # 创建一个垂直布局
        vbox.addWidget(self.ql)
        vbox.addStretch(1)
        central_widget.setLayout(vbox)

        # 设置窗口的标题和大小
        self.setWindowTitle('文件选择器')
        self.setGeometry(300, 300, 500, 500)

    def ctrl_s(self):
        print(self.ql.toPlainText())
        options = QFileDialog.Options()
        options |= QFileDialog.DontUseNativeDialog
        fileName, _ = QFileDialog.getSaveFileName(self, "保存文件", "C://", "Text Files (*.txt)", options=options)
        if fileName:
            with open(fileName, 'w', encoding='utf8') as file:
                file.write(self.ql.toPlainText())

    def text_del(self):
        self.ql.clear()

    def openFileNameDialog(self):
        # 打开文件对话框并获取文件路径  
        options = QFileDialog.Options()  # 初始化
        options |= QFileDialog.DontUseNativeDialog  # 使用pyqt对话框
        fileName, _ = QFileDialog.getOpenFileName(self, "对话框标题", "C://",
                                                  "All Files (*);;Text Files (*.txt);;Text Files (*.py)",
                                                  options=options)  # 打开一个对话框
        """
        C://设置打开的目录,”“模式当前py目录
        "All Files (*);;Text Files (*.txt);;Text Files (*.py)"  设置选择文件的类型
        """
        if fileName:
            with open(fileName, mode="r", encoding="utf8") as f:
                self.ql.setText(f.read())


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = FileChooserApp()
    ex.show()
    sys.exit(app.exec_())
View Code

 上述中创建了两个菜单栏,分别是打开和编辑,内置功能是打开txt文件后读取内容显示在文本框中,文本框中内容可以进行清空和保存。

PyQt5 GUI编程(QMainWindow与QWidget模块结合使用)

 文章来源地址https://www.toymoban.com/news/detail-844142.html

到了这里,关于PyQt5 GUI编程(QMainWindow与QWidget模块结合使用)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据库系统课设——基于python+pyqt5+mysql的酒店管理系统(可直接运行)--GUI编程

    几个月之前写的一个项目,通过这个项目,你能学到关于数据库的触发器知识,python的基本语法,python一些第三方库的使用,包括python如何将前后端连接起来(界面和数据),还有界面的设计等等。希望大家能从项目中学到东西。 宾馆管理系统通过提供顾客和员工信息之间的

    2024年02月05日
    浏览(48)
  • 数据库系统课设——基于python+pyqt5+mysql的酒店管理系统(可直接运行)--GUI编程(2)

     几个月之前写的一个项目,通过这个项目,你能学到关于数据库的触发器知识,python的基本语法,python一些第三方库的使用,包括python如何将前后端连接起来(界面和数据),还有界面的设计等等。希望大家能从项目中学到东西。 宾馆管理系统通过提供顾客和员工信息之间

    2024年02月03日
    浏览(54)
  • pyqt5 QWidget 如何隐藏右上角的关闭和提示按钮

    在 PyQt5 中,隐藏 QWidget 右上角的关闭按钮(也称为窗口关闭按钮)可以通过修改窗口的窗口标志位(WindowFlags)来实现。具体如下: import sys from PyQt5.QtWidgets import QApplication, QWidget class MyWidget(QWidget):     def __init__(self):         super().__init__()         self.initUI()     de

    2024年02月14日
    浏览(51)
  • [Python GUI PyQt] PyQt5快速入门

    本文为博主个人对自己学习 PyQt5 GUI技术的纲要式的总结,主要的目的是以比较宏观的视角再次对 PyQt5 这一项技术作一次总结,通过该文可以快速让读者建立起 PyQt5 最基本的知识体系,了解 PyQt5 的 基本界面的设计 、 信号与槽 和 多线程 等知识,并简单学会使用 Qt Designer 工

    2024年04月15日
    浏览(52)
  • Python GUI文章合集(PyQt5)

    我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈 PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈 Oracle数据库教程:👉👉 Oracle数据库文章合

    2024年02月12日
    浏览(37)
  • python中的yolov5结合PyQt5,使用QT designer设计界面没正确启动的解决方法

    一、窗体设计test: 默认你已经设计好了窗体后: 这时你需要的是保存生成的untitle.ui到某个文件夹下,然后在命令行中奖.ui转换为.py(,通过​​pyqt5​​​提供的转换工具,将​​ui​​​文件转换成​​python​​的代码) 或者使用在PyCharm中安装的工具: 然后你会看到mai

    2024年02月07日
    浏览(46)
  • Python GUI设计-PyQt5从入门到实践(第1-3章)

    良好的开端,等于成功的一半 ————柏拉图 1.1.3 Python的应用领域 Web开发、大数据处理、人工智能、自动化运维开发、云计算、爬虫、游戏开发。 Python ,PyCharm,模块:pyqt5、pyqt5-tools、pyqt5designer 2.3.1 安装Pyqt5及设计器 Pycharm:file–settings 安装三个包。 2.3.2 配置PyQt5设计器

    2024年02月12日
    浏览(41)
  • 基于PyQt5GUI的人脸识别系统设计与实现

    目 录 前 言 1 第 1 章 人脸识别系统概述 1 第 2 章 人脸检测技术 1 §2.1 基于 Harr 级联的人脸检测 2 §2.2 基于 face_recognition 开源库的人脸检测… 错误!未定义书签。第 3 章 人脸识别技术 5 §3.1 构造人脸数据集 5 §3.2 模型训练 7 §3.3 实时人脸识别 9 第 4 章 基于 PyQt5 的应用平台 1

    2024年02月04日
    浏览(46)
  • Qt QWidget、QDialog、QMainWindow的区别

    QWidget QWidget 是Qt框架中最基础的窗口类,可以理解为用户界面的最基本单元。QWidget类提供了一个空白窗口,可以通过继承该类来创建自定义的窗口类。QWidget类提供了基本的窗口属性和方法,如大小、位置、标题、图标等。 QDialog QDialog 是QWidget类的子类,用于创建对话框窗口

    2024年02月08日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包