Pyqt5第一天

第一天将会学习基础的Hello world 案例

案例1:(构造一个简单的窗口)

import sys
from PyQt5.QtWidgets import QApplication, QWidget


if __name__ == '__main__':

    app = QApplication(sys.argv)
#sys.argv是一组命令行参数的列表。Python可以在shell里运行,
#这个参数提供#对脚本控制的功能。
    w = QWidget()
#QWidget空间是一个用户界面的基本空间,它提供了基本的应用构造器。
#默认情况下,构造器是没有父级的,没有父级的构造器被称为窗口(window)。
    w.resize(250, 150)
#resize()方法能改变控件的大小,这里的意思是窗口宽250px,高150px。
    w.move(300, 300)
#move()是修改控件位置的的方法。它把控件放置到屏幕坐标的(300, 300)的位置。
    w.setWindowTitle('Simple')
    w.show()
#show()能让控件在桌面上显示出来。控件在内存里创建,之后才能在显示器上显示出来。
    sys.exit(app.exec_())
#sys.exit()方法能确保主循环安全退出。外部环境能通知主控件怎么结束。

这是做出的截图
Pyqt5第一天_第1张图片

案例2:(创建带图标的窗口)

import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QIcon


class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()#使用initUI()方法创建一个GUI


    def initUI(self):
    #下面3个方法均继承自QWidget类
        self.setGeometry(300, 300, 300, 220)
    #setGeometry是resize()和move()的合体,前面尺寸后面位置
        self.setWindowTitle('Icon')#窗口的名字
        self.setWindowIcon(QIcon('web.png'))        
    #设置窗口图标
        self.show()


if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

这是效果图
Pyqt5第一天_第2张图片

案例3:(创建提示框)

import sys
from PyQt5.QtWidgets import (QWidget, QToolTip, 
    QPushButton, QApplication)
from PyQt5.QtGui import QFont    


class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()


    def initUI(self):
        QToolTip.setFont(QFont('SansSerif',10))
        #设置字体为 10px的SansSerif字体。
        self.setToolTip('This is aQWidget widget')
        #创建提示框1
        btn=QPushButton('Button',self)
        #创建一个标有button的按钮
        btn.setToolTip('This is a QPushButton widget')
        #为按钮添加一个提示框2并显示This is ....
        btn.resize(btn.sizeHint())
        #调整大小,sizeHint()提供了一个默认的按钮大小
        btn.move(50,50)
        self.setGeometry(300,300,300,300)
        self.setWindwoTitlw('ToolTips')
        self.show()
if __name__=='__main__':
    app=QApplication(sys.argv)
    ex=Example()
    sys.exit(app.exec_())
    #本例中创建了两个提示框    

这是效果图

Pyqt5第一天_第3张图片

案例4:(关闭窗口,将会使用QPushButton组件类)

#QPushButton(string text,QWidget parent=None)
#text是想要显示的按钮名称,parent参数是放在按钮上的组件
import sys
from PyQt5.QtWidgets import QWidget, QPushButton, QApplication
from PyQt5.QtCore import QCoreApplication


class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()


    def initUI(self):  
        qbtn=QPushButton('Quit',self)
        #创建了一个继承自QPushButton的按钮,显示quit
        qbtn.clicked.connect(QCoreApplication.instance().quit)
        #QCoreApplication能添加删除所有事件,instance创建了一个实例
        qbtn.resize(qbtn.sizeHint())
        qbtn.move(50,50)
        self.setGeometry(500,500,300,300)
        self.setWindowTitle('Quit button')    
        self.show()
if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())        

这是结果部分:

Pyqt5第一天_第4张图片

案例5:(消息盒子)

import sys
from PyQt5.QtWidgets import QWidget, QMessageBox, QApplication


class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()


    def initUI(self):               

        self.setGeometry(300, 300, 250, 150)        
        self.setWindowTitle('Message box')    
        self.show()


    def closeEvent(self, event):
        reply = QMessageBox.question(self, 'Message',
            "Are you sure to quit?", QMessageBox.Yes | 
            QMessageBox.No, QMessageBox.No)
        #第一个字符串显示在标题栏,第二个显示在对话框,第三个参数是消息框的两个按钮,最后一个是默认选择的按钮
        if reply==QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()
         #点击Yes则关闭否则忽略
if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

效果展示:

Pyqt5第一天_第5张图片

案例6:(窗口居中)

import sys
from PyQt5.QtWidgets import QWidget, QDesktopWidget, QApplication


class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()


    def initUI(self):
        self.resize(250,150)
        self.center() #调用下面的方法
        self.setWindowTitle('Center')
        self.show()
    def center(self):
        qr=self.frameGeometry()#得到主窗口的大小4
        cp=QDesktopWidget().availableGeometry().center()
        #得到显示器的分辨率并得到中间点的位置
        qr.moveCenter(cp)
        #将自己的中心点放到qr的中心点
        self.move(qr.topLeft())
        #将窗口的左上角移动到qr的左上角
if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

本例没有示意图,会出现一个窗口,出现的时候会处于居中的状态


创建菜单和工具栏
菜单是一组位于菜单栏的命令,工具栏是应用的一些常用工具按钮。
状态栏是用来显示应用的状态信息的组件
案例1:(创建状态栏)

import sys
from PyQt5.QtWidgets import QMainWindow, QApplication


class Example(QMainWindow):

    def __init__(self):
        super().__init__()

        self.initUI()


    def initUI(self):               
        self.statusBar().showMessage('Ready')
        #创建状态栏并显示Ready信息
        self.setGeometry(300,300,500,500)
        self.setWindowTitle('Statusbar')
        self.show()
if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())        

案例2:(创建菜单栏)

import sys
from PyQt5.QtWidgets import QMainWindow, QAction, qApp, QApplication
from PyQt5.QtGui import QIcon


class Example(QMainWindow):

    def __init__(self):
        super().__init__()

        self.initUI()


    def initUI(self):

        exit=QAction(QIcon('exit.png'),'Exit',self)
        #QAction是菜单栏、工具栏或者快捷键的动作的组合
        #创建了一个图标、一个exit的标签
        exit.setShortcut('Ctrl+Q')
        #创建快捷键
        exit.setStatusTip('Exit application')
        #创建状态栏
        exit.triggered.connect(qApp.quit)

        self.statusBar() #创建状态栏

        menubar=self.menuBar()#创建菜单栏
        fileMenu=menubar.addMenu('File')  
        #为菜单栏添加file信息
        fileMenu.addAction(exit)
        #并关联了点击退出应用的事件
        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('Menubar')    
        self.show()  

if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())                    

效果展示:

Pyqt5第一天_第6张图片

案例3:(创建工具栏)

import sys
from PyQt5.QtWidgets import QMainWindow, QAction, qApp, QApplication
from PyQt5.QtGui import QIcon


class Example(QMainWindow):

    def __init__(self):
        super().__init__()

        self.initUI()


    def initUI(self):               

        exitAction = QAction(QIcon('exit24.png'), 'Exit', self)
        exitAction.setShortcut('Ctrl+Q')
        exitAction.triggered.connect(qApp.quit)
 #这里使用了一个行为对象,该对象绑定了图标,标签和一个快捷键
        self.toolbar = self.addToolBar('Exit')
 #创建一个工具栏,
        self.toolbar.addAction(exitAction)
 #关联了点击退出的对象exitAction
        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('Toolbar')    
        self.show()


if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

最后将以上三种案例进行组合:

mport sys
from PyQt5.QtWidgets import QMainWindow, QTextEdit, QAction, QApplication
from PyQt5.QtGui import QIcon


class Example(QMainWindow):

    def __init__(self):
        super().__init__()

        self.initUI()


    def initUI(self):               

        textEdit = QTextEdit()
        self.setCentralWidget(textEdit)

        exitAction = QAction(QIcon('exit24.png'), 'Exit', self)
        exitAction.setShortcut('Ctrl+Q')
        exitAction.setStatusTip('Exit application')
        exitAction.triggered.connect(self.close)

        self.statusBar()

        menubar = self.menuBar()
        fileMenu = menubar.addMenu('&File')
        fileMenu.addAction(exitAction)

        toolbar = self.addToolBar('Exit')
        toolbar.addAction(exitAction)

        self.setGeometry(300, 300, 350, 250)
        self.setWindowTitle('Main window')    
        self.show()


if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

运行结果:

Pyqt5第一天_第7张图片


你可能感兴趣的:(pyqt5)