编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

Python+PyQt5进阶(4)(pyqt5快速入门)

wxchong 2024-07-18 09:46:26 开源技术 11 ℃ 0 评论

接上一篇,本篇介绍输入对话框QInputDialog和消息对话框QMessageBox。

QInputDialog

QInputDialog有单行字符串输入、整数输入、浮点数输入和下拉列表输入等几种方式。

  • 字符串输入

函数QInputDialog.getText()显示一个字符串输入对话框,传递的参数包括对话框的标题、提示的标签文字、默认输入、编辑框响应等。text是获取到的文本,ok标识输入是否有效。

QLineEdit.Normal是一个枚举类型,表示响应模式,控制编辑框上文字的显示方式。正常是Normal,如果是输入密码可使用QLineEdit.Password。

def btnStrInput_clicked(self):
    title = "输入字符串对话框"
    label = "请输入对话框"
    inputText = "新建文本文档.txt"
    echoMode = QLineEdit.Normal
    text, ok = QInputDialog.getText(self, title, label, echoMode, inputText)
    if ok:
        self.textBrowser.append(text)
  • 整数输入

函数QInputDialog.getInt()显示一个整数输入对话框,输入整数对话框是使用一个QSpinBox整数输入组件。参数包括数值范围、步长、初始值。

def btnIntInput_clicked(self):
    title = "输入整数对话框"
    label = "请输入字体大小"
    defaultFontSize = self.textBrowser.font().pointSize()
    minSize = 4
    maxSize = 30
    stepSize = 1
    fontSize, ok = QInputDialog.getInt(self, title, label, defaultFontSize, minSize, maxSize, stepSize)
    if ok:
        font = self.textBrowser.font()
        font.setPointSize(fontSize)
        self.textBrowser.setFont(font)
  • 输入浮点数

函数QInputDialog.getFloat()显示一个浮点数对话框。与QInputDialog.getInt()类似,增加了一个小数位数。

def btnFloatInput_clicked(self):
    title = "输入浮点数对话框"
    label = "请输入一个浮点数"
    defaultFloat = 1.314
    minSize = 0
    maxSize = 3000
    decimals = 2
    inputFloat, ok = QInputDialog.getDouble(self, title, label, defaultFloat, minSize, maxSize, decimals)
    if ok:
        floatValue = "输入一个浮点数:%2f" % inputFloat
        self.textBrowser.append(floatValue)
  • 下拉列表输入

函数QInputDialog.getItem()显示一个下拉列表对话框,使用一个QComboBox组件。

def btnItemInput_clicked(self):
    title = "输入浮点数对话框"
    label = "请输入一个浮点数"
    currentIndex = 0
    editable = True
    items = ["优秀", "良好", "合格", "不合格"]
    text, ok = QInputDialog.getItem(self, title, label, items, currentIndex, editable)
    if ok:
        self.textBrowser.append(text)

QMessageBox

  • 消息对话框用于显示警告、错误、消息提示等。其中warning()、information()、critical()、about()这几个函数类似参数相同。例如:
QMessageBox.warning(self, title, label)

parent=self:指定对话框的父窗口,指定之后对话框弹出之后会自动显示在父窗口的上方中间位置。

title:是对话框标题。

label:是提示的信息。

def btnWarning_clicked(self):
    title = "Warning消息框"
    label = "文件内容已被修改,是否保存"
    QMessageBox.warning(self, title, label)

def btnInformation_clicked(self):
    title = "Information消息框"
    label = "文件保存成功"
    QMessageBox.information(self, title, label)

def btnCritical_clicked(self):
    title = "Critical消息框"
    label = "程序出现灾难性错误"
    QMessageBox.critical(self, title, label)

def btnAbout_clicked(self):
    title = "About消息框"
    label = "关于软件"
    QMessageBox.about(self, title, label)
  • 确认选择对话框QMessageBox.question()用于打开一个确认对话框,并提供一个Yes,No等按钮。

question()会返回一个QMessageBox.StandardButton枚举类型变量,表示哪个按钮被按下。

def btnQuestion_clicked(self):
    title = "Question消息框"
    label = "是否保存文件"
    defaultButton = QMessageBox.NoButton
    result = QMessageBox.question(self, title, label, QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel, defaultButton)
    if result == QMessageBox.Yes:
        self.textBrowser.append("文件已经保存")
    if result == QMessageBox.No:
        self.textBrowser.append("文件未保存")
    if result == QMessageBox.Cancel:
        self.textBrowser.append("文件保存被取消")

一个简单的案例介绍对话框的使用,如果需要源代码可关注私聊,感谢支持!!!!

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表