PyQt5 QDialog对话框(QMessageBox,QInputDialog,QFontDialog,QFileDialog,QColorDialog)
创始人
2024-04-11 11:14:39
0

PyQt5 QDialog对话框

  • QDialog类图
  • QDialog
  • QMessageBox
  • QInputDialog
  • QFontDialog
  • QFileDialog
  • QColorDialog

QDialog类图

在这里插入图片描述

QDialog

import sys
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qtclass MyDialogWindow(QMainWindow):def __init__(self, parent=None):super(MyDialogWindow, self).__init__(parent)self.setWindowTitle("Dialog Demo")self.resize(350, 300)self.btn = QPushButton(self)self.btn.setText("弹出对话框")self.btn.move(50, 50)self.btn.clicked.connect(self.showdialog)def showdialog(self):dialog = QDialog()btn = QPushButton("OK" ,dialog)btn.move(50, 50)dialog.setWindowTitle("Dialog")dialog.setWindowModality(Qt.ApplicationModal)dialog.exec_()if __name__ == "__main__":app = QApplication(sys.argv)win = MyDialogWindow()win.show()sys.exit(app.exec_())

在这里插入图片描述

QMessageBox

import sys
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qtclass MyMessageBox(QWidget):def __init__(self):super(MyMessageBox, self).__init__()self.setWindowTitle("QMessageBox Demo")self.resize(300, 300)layout = QVBoxLayout()self.btn1 = QPushButton()self.btn1.setText("弹出信息消息框")self.btn1.clicked.connect(lambda:self.showmessagebox(1))layout.addWidget(self.btn1)self.btn2 = QPushButton("弹出问答消息框", self)self.btn2.clicked.connect(lambda:self.showmessagebox(2))layout.addWidget(self.btn2)self.btn3 = QPushButton("弹出警告消息框", self)self.btn3.clicked.connect(lambda:self.showmessagebox(3))layout.addWidget(self.btn3)self.btn4 = QPushButton("弹出严重错误框", self)self.btn4.clicked.connect(lambda:self.showmessagebox(4))layout.addWidget(self.btn4)self.btn5 = QPushButton("弹出关于消息框", self)self.btn5.clicked.connect(lambda:self.showmessagebox(5))layout.addWidget(self.btn5)self.setLayout(layout)def showmessagebox(self, index):if index == 1:reply = QMessageBox.information(self, "信息标题", "信息消息正文", QMessageBox.Yes|QMessageBox.No, QMessageBox.Yes)print(reply)elif index == 2:reply = QMessageBox.question(self, "问答标题", "问答消息文本", QMessageBox.Ok|QMessageBox.Cancel, QMessageBox.Ok)print(reply)elif index == 3:reply =QMessageBox.warning(self, "警告标题", "警告消息内容", QMessageBox.Ok|QMessageBox.Cancel, QMessageBox.Ok)print(reply)elif index == 4:reply = QMessageBox.critical(self, "严重标题","严重错误消息内容", QMessageBox.Yes|QMessageBox.No, QMessageBox.Yes)print(reply)elif index == 5:reply = QMessageBox.about(self, "关于标题", "关于消息对话框文本")print(reply)if __name__ == "__main__":app = QApplication(sys.argv)win = MyMessageBox()win.show()sys.exit(app.exec_())

在这里插入图片描述

QInputDialog

import sys
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qtclass MyInputDialogWindow(QWidget):def __init__(self, parent=None):super(MyInputDialogWindow, self).__init__(parent)layout = QFormLayout()self.btn1 = QPushButton("获得列表里的选项")self.btn1.clicked.connect(self.getItem)self.le1 = QLineEdit()layout.addRow(self.btn1, self.le1)self.btn2 = QPushButton("获得字符串")self.btn2.clicked.connect(self.getText)self.le2 = QLineEdit()layout.addRow(self.btn2, self.le2)self.btn3 = QPushButton("获得整数")self.btn3.clicked.connect(self.getInt)self.le3 = QLineEdit()layout.addRow(self.btn3, self.le3)self.btn4 = QPushButton("获得浮点数")self.btn4.clicked.connect(self.getDouble)self.le4 = QLineEdit()layout.addRow(self.btn4, self.le4)self.setLayout(layout)self.resize(350, 300)self.setWindowTitle("QInputDialog Demo")def getItem(self):items = ("C", "C++", "Java", "Python", "C#")item, ok = QInputDialog.getItem(self, "select input dialog", "语言列表", items, 0, False)if ok and item:self.le1.setText(item)def getText(self):text, ok = QInputDialog.getText(self, 'Text Input Dialog', '输入姓名:')if ok:self.le2.setText(str(text))def getInt(self):num,ok = QInputDialog.getInt(self, "integer input dialog", "输入数字")if ok:self.le3.setText(str(num))def getDouble(self):num,ok = QInputDialog.getDouble(self, "double input dialog", "输入浮点数")if ok:self.le4.setText(str(num))if __name__ == "__main__":app = QApplication(sys.argv)win = MyInputDialogWindow()win.show()sys.exit(app.exec_())

在这里插入图片描述

QFontDialog

import sys
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qtclass MyFontDialogDemo(QWidget):def __init__(self, parent=None):super(MyFontDialogDemo, self).__init__(parent)layout = QVBoxLayout()self.fontButton = QPushButton("选择字体")self.fontButton.clicked.connect(self.getFont)layout.addWidget(self.fontButton)self.fontLineEdit = QLabel("Hello,测试字体Demo")layout.addWidget(self.fontLineEdit)self.setLayout(layout)self.setWindowTitle("Font Dialog Demo")def getFont(self):font, ok = QFontDialog.getFont()if ok:self.fontLineEdit.setFont(font)if __name__ == "__main__":app = QApplication(sys.argv)win = MyFontDialogDemo()win.show()sys.exit(app.exec_())

在这里插入图片描述

QFileDialog

import sysfrom PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qtclass filedialogDemo(QWidget):def __init__(self, parent=None):super(filedialogDemo, self).__init__(parent)layout = QVBoxLayout()self.btn = QPushButton("加载图片")self.btn.clicked.connect(self.getfile)layout.addWidget(self.btn)self.le = QLabel("")layout.addWidget(self.le)self.btn1 = QPushButton("加载文本文件")self.btn1.clicked.connect(self.getfiles)layout.addWidget(self.btn1)self.contents = QTextEdit()layout.addWidget(self.contents)self.setLayout(layout)self.setWindowTitle("File Dialog Demo")def getfile(self):fname, aa = QFileDialog.getOpenFileName(self, 'Open file', 'C:\\', "Image files (*.jpg *.gif)")self.le.setPixmap(QPixmap(fname))def getfiles(self):dlg = QFileDialog()dlg.setFileMode(QFileDialog.AnyFile)dlg.setFilter(QDir.Files)if dlg.exec_():filenames = dlg.selectedFiles()f = open(filenames[0], 'r')with f:data = f.read()self.contents.setText(data)f.close()if __name__ == "__main__":app = QApplication(sys.argv)win = filedialogDemo()win.show()sys.exit(app.exec_())

在这里插入图片描述

QColorDialog

import sys
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qtclass MyColorDialogWindow(QWidget):def __init__(self, parent=None):super(MyColorDialogWindow, self).__init__(parent)self.palette = QPalette()layout = QVBoxLayout()self.btn1 = QPushButton("设置背景颜色")self.btn1.clicked.connect(self.onSetBgColorClicked)layout.addWidget(self.btn1)self.btn2 = QPushButton("设置文本颜色")self.btn2.clicked.connect(self.onSetTxtColorClicked)layout.addWidget(self.btn2)self.label = QLabel("测试文本内容")self.label.setFixedSize(150, 50)self.label.setAlignment(Qt.AlignCenter)layout.addWidget(self.label)self.resize(380, 150)self.setWindowTitle("QColorDialog Demo")self.setLayout(layout)def onSetBgColorClicked(self):color = QColorDialog.getColor()self.palette.setColor(QPalette.Window, color)self.label.setAutoFillBackground(True)self.label.setPalette(self.palette)def onSetTxtColorClicked(self):color = QColorDialog.getColor()r,g,b,_ = color.getRgb()self.label.setStyleSheet("color:rgb({},{},{},255)".format(r,g,b))#self.palette.setColor(QPalette.WindowText, color)#self.label.setPalette(self.palette)if __name__ == "__main__":app = QApplication(sys.argv)win = MyColorDialogWindow()win.show()sys.exit(app.exec_())

在这里插入图片描述

相关内容

热门资讯

强化制度保障,发改委将研究制定... 记者 辛圆 国家发改委政策研究室副主任、新闻发言人李超周三在新闻发布会上表示,要把有利于全国统一大...
国家发改委:研究制定全国统一大... 钛媒体App 12月31日消息,国家发改委政策研究室副主任、新闻发言人李超12月31日在新闻发布会上...
犯罪电影《96分钟:列车爆炸案... 2025年【中国台湾地区电影】票房冠军、犯罪电影《96分钟:列车爆炸案》今日官宣点映开启,并同步释出...
*ST云网遭员工起诉 1229... 12月30日,*ST云网(002306)发布公告,近日公司收到北京市海淀区人民法院的法律文件,原告秦...
拒绝“千镇一面”,上海历史文化... 拒绝“千镇一面”,留住“活的记忆” 历史文化名镇保护条例表决通过 昨天,市十六届人大常委会第二十六次...
原创 “... 增值税是我国第一大税种,其纳税人覆盖绝大部分经营主体,与社会大众日常生活息息相关。12月30日,《中...
湖南以高质量涉外法律服务保障高... 近年来,中国(湖南)自贸试验区建设加快推进,中非经贸博览会、中非经贸深度合作先行区等国家级平台相继落...
山东省民办教育协会政策与法律专... 12月27日,山东省民办教育领域迎来一场极具里程碑意义的盛会,山东省民办教育协会政策与法律专家委员会...
我国将继续实施黄河休禁渔制度 记者31日从农业农村部获悉,农业农村部日前印发《关于继续实施黄河休禁渔制度的通告》,明确继续实施黄河...
下调!住房出售,最新政策来了! 12月30日,财政部、税务总局发布《关于个人销售住房增值税政策的公告》(下称《公告》),明确个人将购...