【python】PyQt5 学习 _2
基础篇 2
生成 MessageBox 窗口。可自行设置 title text ,并有 【退出】按键,也可以设定窗口存在时长。
# coding:utf-8
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, QLabel, QPushButton, QVBoxLayout, QHBoxLayout, QWidget, QGridLayout, QLineEdit
from PyQt5.QtCore import Qt, QCoreApplication, QTimer
class GUI(QWidget):
def iniUI(self, width=400, height=300, title="this is title", text="this is text"):
self.setWindowTitle(title)
self.resize(width, height)
self.rpa_layout(text)
# 布局
def rpa_layout(self, text):
wwg = QWidget(self)
wlayout = QVBoxLayout(wwg) # 垂直布局
hlayout1 = QHBoxLayout() # 水平布局
hlayout2 = QHBoxLayout() # 水平布局
# 标签
label = QLabel()
label.setText(text) # label里 写入 text
# 按钮
button = QPushButton('取消')
button.clicked.connect(QCoreApplication.quit)
hlayout1.addWidget(label) # 第一个 layout
hlayout2.addStretch() # 拉伸操作
hlayout2.addWidget(button) # 第二个 layout
wlayout.addLayout(hlayout1)
wlayout.addLayout(hlayout2)
self.setLayout(wlayout) # 设置窗体布局
def msg_box(width=300, height=150, title="title", text="text", timeout=5):
'''
消息框
:param width: 宽度 默认400
:param height: 高度 默认300
:param title: 窗口标题 默认 "title"
:param text: 框内文本 默认 "text"
:param timeout: 超时 默认5秒
'''
try:
app = QApplication(sys.argv)
gui = GUI()
gui.iniUI(width, height, title, text)
gui.show()
time_colock = QTimer()
time_colock.singleShot(timeout*1000, app.quit) # 秒 -> 毫秒
sys.exit(app.exec_())
except Exception as e:
raise e
if __name__ == '__main__':
msg_box()
在看完第一篇 pyqt5 学习帖后, 本帖加入了 按键 和 布局,但都是很简单的代码,可以看下 ~~~
当然也可以直接用 pyqt5 封装好的函数:
# -*- coding:utf-8 -*-
# https://www.riverbankcomputing.com/static/Docs/PyQt5/genindex.html
import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
class MyWindow(QWidget):
def msg(self):
reply = QMessageBox.about(self, "标题", "关于对话框消息正文")#弹出消息对话框
if __name__ == '__main__':
app=QApplication(sys.argv)
myshow=MyWindow().msg()
app.quit()
简单粗暴,但 适应性 小。