pyqt5(主窗口)

转:https://mp.weixin.qq.com/s/Wy1iTYoX7_O81ChMflXXfg
Qt设计师制作记事本菜单

链接: https://pan.baidu.com/s/1CIFeyAGpZ5c4BgdjZD1E3Q 提取码: 0369

PyQt5的类存在与如下模块当中:

● QtCore

● QtGui

● QtWidgets

● QtMultimedia

● QtBluetooth

● QtNetwork

● QtPositioning

● Enginio

● QtWebSockets

● QtWebKit

● QtWebKitWidgets

● QtXml

● QtSvg

● QtSql

● QtTest

QtCore模块涵盖了包的核心的非GUI功能,此模块被用于处理程序中涉及到的 time、文件、目录、数据类型、文本流、链接、mime、线程或进程等对象。

QtGui模块涵盖多种基本图形功能的类; 包括但不限于:窗口集、事件处理、2D图形、基本的图像和界面 和字体文本。

QtWidgets模块包含了一整套UI元素组件,用于建立符合系统风格的classic界面,非常方便,可以在安装时选择是否使用此功能。

QtMultimedia模块包含了一套类库,该类库被用于处理多媒体事件,通过调用API接口访问摄像头、语音设备、收发消息(radio functionality)等。

QtBluetooth模块包含了处理蓝牙活动的类库,它的功能包括:扫描设备、连接、交互等行为(有没有感觉很高大上:))。

QtNetwork模块包含用于网络编程的类库,这组类程序通过提供便捷的TCP/IP 及 UDP 的 c/s 程式码集合,使得基于Qt的网络编程更容易。

QtPositioning模块用于获取位置信息,此模块允许使用多种方式达成定位,包括但不限于:卫星、无线网、文字信息。此应用一般用于网络地图定位系统。

Enginio模块用于构建客户端的应用程式库,用于在运行时访问 Qt Cloud 服务器托管的应用程序。

QtWebSockets模块包含了一组类程序,用以实现websocket协议。

QtWebKit包含了用于实现基于webkit2的网络浏览器的类库。

QtWebKitWidgets模块包含用于基于WebKit1的Web浏览器实现的类,用于基于QtWidgets的应用程序

QtXml模块包含了用于处理XML的类库,此模块为SAX和DOM API 的实现提供了方法。

QtSvg模块通过一组类,为显示矢量图形文件的内容提供了方法。

QtSql模块提供了数据库对象的接口以供使用

QtTest模块包含了可以通过单元测试,以调试PyQt5应用程式的功能。

from PyQt5.QtWidgets import QWidget,QApplication,QInputDialog,QMessageBox,QPushButton,QLabel

import sys

class example(QWidget):
    def __init__(self):
        super(example, self).__init__()

    def initUI(self):
        


if __name__=="main":
    app = QApplication(sys.argv)

    sys.exit(app.exec_())

app = QApplication(sys.argv)
每个PyQt5应用程序必须创建一个应用程序对象。 sys.argv参数是来自命令行的参数列表

show()
show()方法在屏幕上显示窗口小部件。 一个小部件首先在内存中创建,然后在屏幕上显示。

qbtn.clicked.connect(QCoreApplication.instance().quit)
一个关闭按钮并实现关闭窗口的功能

self.bt1.setToolTip(‘点击这里猜数字’)
鼠标停留在按钮上就会出现提示

setFocus()就是让焦点置于文本栏中,方便用户输入

setGeometry()就是设置小部件的摆放坐标以及大小

QMessageBox.about就是弹出一个对话框

QMessageBox.question
在这里插入图片描述
QMessageBox.critical
在这里插入图片描述
QMessageBox.warning
在这里插入图片描述
QMessageBox.information
在这里插入图片描述

布局

        hbox = QHBoxLayout() #水平布局
        hbox.addStretch(1) #间隔比例,拉伸因子
        hbox.addWidget(bt1) #增加小控件
        hbox.addStretch(1)
        hbox.addWidget(bt2)
        hbox.addStretch(1)
        hbox.addWidget(bt3)
        hbox.addStretch(1)

        vbox = QVBoxLayout()  #竖直布局
        vbox.addStretch(1)
        vbox.addLayout(hbox)
        vbox.addStretch(1)
        
		self.setLayout(vbox) #放在底部

状态栏
获取状态栏,我们调用QtGui.QMainWindow类的statusBar()方法
showMessage()在状态栏上显示一条消息

self.statusBar().showMessage('准备就绪')

菜单栏
menuBar()方法创建一个菜单栏。 我们使用addMenu()创建文件菜单,并使用addAction()添加操作。

menubar = self.menuBar()
fileMenu = menubar.addMenu('文件(&F)')
fileMenu.addAction(exitAct)

上面的代码中我们在退出、文件后面都增加了“&”这个符号,增加这个符号后,当我们按住“Alt+F”的时候就能快速打开文件这个菜单,同理按住“Alt+E”的时候就能退出了。

QAction是使用菜单栏,工具栏或自定义键盘快捷方式执行操作的抽象。在上述三行中,我们创建一个具有特定图标和“退出”标签的动作。此外,为此操作定义了快捷方式。当我们将鼠标指针悬停在菜单项上时,第三行创建状态栏显示在状态栏中。

exitAct = QAction(QIcon('exit.png'), '退出(&E)', self)
exitAct.setShortcut('Ctrl+Q')
exitAct.setStatusTip('退出程序')

子菜单
使用QMenu创建新菜单,两个动作使用addAction()被添加到子菜单中

        saveMenu = QMenu('保存方式(&S)', self)
        saveAct = QAction(QIcon('save.png'),'保存...', self)
        saveAct.setShortcut('Ctrl+S')
        saveAct.setStatusTip('保存文件')
        saveasAct = QAction(QIcon('saveas.png'),'另存为...(&O)', self)
        saveasAct.setStatusTip('文件另存为')
        saveMenu.addAction(saveAct)
        saveMenu.addAction(saveasAct)

右键菜单
Windows操作系统中任何地方右击鼠标会出现俗称的“右键菜单”

    def contextMenuEvent(self, event):

       cmenu = QMenu(self)

       newAct = cmenu.addAction("新建")
       opnAct = cmenu.addAction("保存")
       quitAct = cmenu.addAction("退出")
       action = cmenu.exec_(self.mapToGlobal(event.pos()))
       if action == quitAct:
           qApp.quit()

工具栏

        newAct = QAction(QIcon('new.png'),'新建(&N)',self)
        newAct.setShortcut('Ctrl+N')
        newAct.setStatusTip('新建文件')
        
        toolbar = self.addToolBar('工具栏')
        toolbar.addAction(newAct)
        toolbar.addAction(exitAct)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 很高兴与您聊天!PyQt5窗口自适应是一个关于编程的问题,我可以尝试解答。PyQt5窗口自适应的方法是,可以使用QWidget的setGeometry()方法来设置窗口的大小,然后使用setMinimumSize()和setMaximumSize()方法来设置窗口的最小尺寸和最大尺寸。另外,还可以使用QGridLayout和QHBoxLayout来实现更灵活的窗口调整。 ### 回答2: 在PyQt5中,可以通过设置窗口的大小策略来实现窗口的自适应。窗口的大小策略可以通过设置setSizePolicy()方法来实现。 首先,我们需要创建一个QMainWindow对象作为窗口: ``` from PyQt5.QtWidgets import QApplication, QMainWindow app = QApplication([]) window = QMainWindow() ``` 然后,我们需要设置窗口的大小策略,使其自适应窗口大小的改变: ``` window.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) ``` setSizePolicy()方法的参数可以是QSizePolicy类中的常量,QSizePolicy.Expanding表示控件可以随着窗口的尺寸扩展或收缩。 最后,调用show()方法显示窗口: ``` window.show() app.exec_() ``` 这样,窗口就可以根据窗口的尺寸自适应地进行大小调整。无论是手动调整窗口的大小还是最大化窗口窗口的大小都会自动适应。 ### 回答3: PyQt5 是一个流行的Python GUI编程工具包,可以用于创建各种类型的交互式应用程序。要实现 PyQt5 窗口的自适应,可以采取以下步骤: 1. 导入必要的模块:`PyQt5.QtWidgets` 用于创建GUI组件,`PyQt5.QtGui` 用于创建应用程序图标。 2. 创建应用程序对象:使用 `QApplication` 类创建一个应用程序对象。 3. 创建窗口:使用 `QMainWindow` 类创建一个窗口对象。 4. 设置窗口属性:通过 `setWindowTitle`、`setIcon`等方法设置窗口的标题和图标。 5. 创建布局管理器:使用 `QVBoxLayout` 或 `QHBoxLayout` 创建一个布局管理器。 6. 添加需要的组件:使用 `addWidget` 方法将组件添加到布局管理器中。 7. 设置窗口布局:使用 `setLayout` 方法将布局管理器设置为窗口的布局。 8. 设置窗口尺寸策略:使用 `setSizePolicy` 方法设置窗口的尺寸策略为 `QSizePolicy.Expanding`。 9. 显示窗口:使用 `show` 方法显示窗口。 以下是一个简单的示例代码,实现了一个自适应的窗口: ``` import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QPushButton app = QApplication(sys.argv) # 创建窗口 window = QMainWindow() window.setWindowTitle("自适应窗口") window.setWindowIcon(QtGui.QIcon("icon.png")) # 创建布局管理器 layout = QVBoxLayout() # 添加按钮组件 button = QPushButton("按钮") layout.addWidget(button) # 设置窗口布局 widget = QWidget() widget.setLayout(layout) window.setCentralWidget(widget) # 设置窗口尺寸策略 window.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) # 显示窗口 window.show() sys.exit(app.exec_()) ``` 通过上述步骤,我们可以创建一个具有自适应能力的 PyQt5 窗口

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值