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
pyqt5(主窗口)_第1张图片
QMessageBox.critical
pyqt5(主窗口)_第2张图片
QMessageBox.warning
pyqt5(主窗口)_第3张图片
QMessageBox.information
pyqt5(主窗口)_第4张图片

布局

        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)

你可能感兴趣的:(python)