PyQt5基本功能
简单的例子
PyQt5是一种高级的语言,下面只有几行代码就能显示一个小窗口。底层已经实现了窗口的基本功能。
import sys
from PyQt5.QtWidgets import QApplication, QWidget #基本控件位于pyqt5.qtwidgets模块中。
if __name__ == '__main__':
app = QApplication(sys.argv)
w = QWidget() #QWidget()方法调整窗口的大小。
w.resize(800,400)
w.move(300,300)
w.setWindowTitle('Simple') #设置窗口的标题。
w.show()#显示在屏幕上。
sys.exit(app.exec_()) #系统exit()方法确保应用程序干净的退出。
运行结果如下:
应用程序的图标
应用程序图标是一个小的图像,通常在标题栏的左上角显示。在下面的例子中我们将介绍如何做pyqt5的图标。同时我们也将介绍一些新方法。
import sys
from PyQt5.QtWidgets import QApplication,QWidget
from PyQt5.QtGui import QIcon
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI() #界面绘制交给InitUi方法
def initUI(self):
self.setGeometry(300,300,300,220)
self.setWindowTitle('Icon')
self.setWindowIcon(QIcon('icon.jpg'))
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
运行结果如下:
显示提示语
import sys
from PyQt5.QtWidgets import QApplication,QWidget,QToolTip,QPushButton
from PyQt5.QtGui import QIcon,QFont
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI() #界面绘制交给InitUi方法。
def initUI(self):
QToolTip.setFont(QFont('Sanserif',10)) #这种静态的方法设置一个用于显示工具提示的文字。
self.setToolTip('This is a <b>QWidget</b> widget')
btn = QPushButton('Button',self)
btn.setToolTip('This is a <b>QPushButton</b> widget')
btn.resize(btn.sizeHint()) #显示默认尺寸。
btn.move(50,50) #移动窗口的位置。
self.setGeometry(300,300,300,220)
self.setWindowTitle('Icon')
self.setWindowIcon(QIcon('icon.jpg'))
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
运行结果如下:
关闭窗口
设置退出按钮来退出窗口。
import sys
from PyQt5.QtWidgets import QApplication,QWidget,QToolTip,QPushButton
from PyQt5.QtGui import QIcon,QFont
from PyQt5.QtCore import QCoreApplication
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI() #界面绘制交给InitUi方法。
def initUI(self):
QToolTip.setFont(QFont('Bold',10)) #这种静态的方法设置一个用于显示工具提示的文字。
self.setToolTip('This is a <b>QWidget</b> widget')
btn = QPushButton('Button',self)
btn.setToolTip('This is a <b>QPushButton</b> widget')
btn.resize(100,40) #显示默认尺寸。
btn.move(100,350) #移动窗口的位置。
qbtn = QPushButton('Quit',self)
qbtn.setToolTip('This is a <b>QPushButton</b> widget')
qbtn.clicked.connect(QCoreApplication.instance().quit)
qbtn.resize(100,40)
qbtn.move(400,350)
self.setGeometry(300,300,600,400)
self.setWindowTitle('Icon')
self.setWindowIcon(QIcon('icon.jpg'))
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
消息框
默认情况下,如果我们单击x按钮窗口就关门了。有时我们想修改这个默认的行为。例如我们在编辑器中修改了一个文件,当关闭他的时候,我们显示一个消息框确认。
import sys
from PyQt5.QtWidgets import QApplication,QWidget,QToolTip,QPushButton,QMessageBox
from PyQt5.QtGui import QIcon,QFont
from PyQt5.QtCore import QCoreApplication
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI() #界面绘制交给InitUi方法。
def initUI(self):
QToolTip.setFont(QFont('Bold',10)) #这种静态的方法设置一个用于显示工具提示的文字。
self.setToolTip('This is a <b>QWidget</b> widget')
btn = QPushButton('Button',self)
btn.setToolTip('This is a <b>QPushButton</b> widget')
btn.resize(100,40) #显示默认尺寸。
btn.move(100,350) #移动窗口的位置。
qbtn = QPushButton('Quit',self)
qbtn.setToolTip('This is a <b>QPushButton</b> widget')
qbtn.clicked.connect(QCoreApplication.instance().quit)
qbtn.resize(100,40)
qbtn.move(400,350)
self.setGeometry(300,300,600,400)
self.setWindowTitle('OCR文字识别')
self.setWindowIcon(QIcon('icon.jpg'))
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()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
窗口显示在屏幕的中间
import sys
from PyQt5.QtWidgets import QApplication,QWidget,QToolTip,QPushButton,QMessageBox,QDesktopWidget
from PyQt5.QtGui import QIcon,QFont
from PyQt5.QtCore import QCoreApplication
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI() #界面绘制交给InitUi方法。
def initUI(self):
QToolTip.setFont(QFont('Bold',10)) #这种静态的方法设置一个用于显示工具提示的文字。
self.setToolTip('This is a <b>QWidget</b> widget')
btn = QPushButton('Button',self)
btn.setToolTip('This is a <b>QPushButton</b> widget')
btn.resize(100,40) #显示默认尺寸。
btn.move(100,350) #移动窗口的位置。
qbtn = QPushButton('Quit',self)
qbtn.setToolTip('This is a <b>QPushButton</b> widget')
qbtn.clicked.connect(QCoreApplication.instance().quit)
qbtn.resize(100,40)
qbtn.move(400,350)
self.resize(600,400)
self.center()
self.setWindowTitle('OCR文字识别')
self.setWindowIcon(QIcon('icon.jpg'))
self.show()
def center(self):
qr = self.frameGeometry() #获得屏幕中心点
cp = QDesktopWidget().availableGeometry().center()
qr.moveCenter(cp)
self.move(qr.topLeft())
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()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())