01、信息框提示,点击按钮打开信息提示框
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QMessageBox
import sys, time
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(771, 685)
Form.setMaximumSize(QtCore.QSize(16777215, 16777215))
self.pushButton = QtWidgets.QPushButton(Form)
self.pushButton.setGeometry(QtCore.QRect(250, 140, 75, 23))
self.pushButton.setObjectName("pushButton")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.pushButton.setText(_translate("Form", "PushButton"))
class mymessage(QtWidgets.QWidget, Ui_Form):
_signal = QtCore.pyqtSignal()
def __init__(self):
super(mymessage, self).__init__()
self.setupUi(self)
self.pushButton.clicked.connect(self.msg)
def msg(self):
OK = QMessageBox.information(self, ("标题"), ("""信息框提示信息"""), QMessageBox.StandardButtons(QMessageBox.Yes | QMessageBox.No))
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
myshow = mymessage()
myshow.show()
sys.exit(app.exec_())
02、信息提示框讲解
--提示框类型:
--QMessageBox.information 信息框
--QMessageBox.question 问答框
--QMessageBox.warning 警告
--QMessageBox.ctitical 危险
--QMessageBox.about 关于
注:他们的统一形式都可以写为
QMessageBox.类型(self, ("title"), ("""提示信息"""), QMessageBox.StandardButtons(按钮1 | 按钮2 | 按钮3 | *** ***))
--按钮类型:
--QMessageBox.Yes
--QMessageBox.No
--QMessageBox.Abort
--QMessageBox.Apply
--QMessageBox.Cancel
--QMessageBox.Close
--QMessageBox.Discard
--QMessageBox.Help
--QMessageBox.Ignore
--QMessageBox.NoToAll
--QMessageBox.Ok
--QMessageBox.Open
--QMessageBox.Reset
--QMessageBox.RestoreDefaults
--QMessageBox.Retry
--QMessageBox.Save
--QMessageBox.SaveAll
--QMessageBox.YesToAll
--示例:如何根据点击按钮的值,执行接下来的动作
--result = QMessageBox.information(self, ("标题"), ("""信息框提示信息"""), QMessageBox.StandardButtons(QMessageBox.Yes | QMessageBox.No))
--if (result == QMessageBox.Yes):
-- print('开始执行Yes')
--elif (result == QMessageBox.No):
-- print('开始执行No')
--示例:多个按钮的信息提示框
--result = QMessageBox.warning(self, ("Warning"), ("""警告框提示信息"""),
QMessageBox.StandardButtons(QMessageBox.Yes | QMessageBox.No))
03、各种类型的输入框--QInputDialog
--标准输入文字框 QInputDialog.getText(),需要 QInputDialog 和 QLineEdit 模块,默认返回输入框文字和按钮 bool 值
--标准整数输入框 QInputDialog.getInt(),默认返回输入框文字和按钮 bool 值,其中[0, -2147483647, 2147483647, 1]
0为默认数值,[-2147483647, 2147483647]为数值范围,1为步长(即按上下按钮时数值增加或减少多少)
--示例:
result, ok = QInputDialog.getInt(self, ("标题"), ("请输入数值"), 0, -2147483647, 2147483647, 1)
--标准浮点数输入框 QInputDialog.getDouble(),默认返回输入框文字和按钮bool值,其中[0, -2147483647, 2147483647, 10]
0为默认数值,[-2147483647, 2147483647]为数值范围,最后10代表小数位数
--示例:
result, ok = QInputDialog.getDouble(self, ("标题"), ("请输入数值:"), 0, -2147483647, 2147483647, 10)
print(result, ok)
--列表输入选择框 QInputDialog.getItem(),默认返回输入框文字和按钮bool值,条目添加为列表类型,其中item为自定义列表,1为默认选中选项目,
True/False 列表框是否可编辑。
--示例:
item = ["男生", "女生", "变态"]
result, ok = QInputDialog.getItem(self, ("Item输入框"), ("请输入或选择:"), item, 1, True)
print(result, ok)
--代码示例:
from PyQt5 import QtCore, QtGui, QtWidgets
import sys, time
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(771, 685)
Form.setMaximumSize(QtCore.QSize(16777215, 16777215))
self.pushButton = QtWidgets.QPushButton(Form)
self.pushButton.setGeometry(QtCore.QRect(250, 140, 75, 23))
self.pushButton.setObjectName("pushButton")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.pushButton.setText(_translate("Form", "PushButton"))
class myinputdialog(QtWidgets.QWidget, Ui_Form):
_signal = QtCore.pyqtSignal() # 定义信号接收对象 及 接受类型
def __init__(self):
super(myinputdialog, self).__init__()
self.setupUi(self)
self.pushButton.clicked.connect(self.msg)
def msg(self):
result, ok = QtWidgets.QInputDialog.getText(self, ("标准输入框"), ("提示"), QtWidgets.QLineEdit.Normal, ("默认文字"))
print(result, ok)
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
myinput = myinputdialog()
myinput.show()
sys.exit(app.exec_())
04、标准文件打开保存框之打开读入文件实现--QFileDialog
--单个文件打开 QFileDialog.getOpenFileName()
--多个文件打开 QFileDialog.getOpenFileNames()
--参数(指定父组件, "标题","默认打开路径","后缀名过滤器")还有很多
--返回值 默认返回文件路径名 和 当前过滤名/过滤器
--如果需要多种类型过滤,可以这样 "jpg(*.jpg);;exe(*.exe);;(*.*)",用两个;;分割开
--getOpenFileName() 函数在 Windows和 MacOS X平台上提供的是本地的对话框
--注意多个文件打开,若要包含子目录还需要使用别的手段,自行百度
--示例:这里加上读出文件的部分
from PyQt5 import QtCore, QtGui, QtWidgets
import sys, time
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(771, 685)
Form.setMaximumSize(QtCore.QSize(16777215, 16777215))
Form.setSizeIncrement(QtCore.QSize(2, 2))
self.pushButton_2 = QtWidgets.QPushButton(Form)
self.pushButton_2.setGeometry(QtCore.QRect(120, 220, 121, 23))
self.pushButton_2.setObjectName("pushButton_2")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.pushButton_2.setText(_translate("Form", "选择文件"))
class myfiledialog(QtWidgets.QWidget, Ui_Form):
_signal = QtCore.pyqtSignal(str) # 定义信号类型
def __init__(self):
super(myfiledialog, self).__init__()
self.setupUi(self)
self.pushButton_2.clicked.connect(self.msg)
def msg(self):
filename, filter_name = QtWidgets.QFileDialog.getOpenFileName(self, ("标题"), ("C:/Users/lwx898295/Desktop/lwx898295/python/djando"), ("选择文件(*.txt)"))
with open(filename, 'r', encoding='utf8') as f:
for i in f.readlines():
print(i)
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
myfile = myfiledialog()
myfile.show()
sys.exit(app.exec_())
05、标准文件打开保存框之保存文件实现--QFileDialog