zoukankan      html  css  js  c++  java
  • PyQt5-对话框控件使用(QDialog)

    PyQt5中对话框QDialog类的子类主要有QMessageBox、QFileDialog、QFontDialog、QInputDialog等

    Dialog中的类常用方法如下:

    QDialog控件例如:

     1 #QDialog对话框使用
     2 from PyQt5.QtWidgets import  QVBoxLayout,QWidget,QApplication ,QHBoxLayout,QDialog,QPushButton,QMainWindow,QGridLayout,QLabel
     3 
     4 from PyQt5.QtGui import QIcon,QPixmap,QFont
     5 from PyQt5.QtCore import  Qt
     6 
     7 import sys
     8 
     9 class WindowClass(QWidget):
    10 
    11     def __init__(self,parent=None):
    12 
    13         super(WindowClass, self).__init__(parent)
    14         layout=QVBoxLayout()
    15         self.btn=QPushButton()
    16         self.btn.setText("显示对话框")
    17         self.btn.clicked.connect(self.showDialog)
    18         self.resize(500,500)
    19         layout.addWidget(self.btn)
    20 
    21         self.setLayout(layout)
    22 
    23     def showDialog(self):
    24          vbox=QVBoxLayout()#纵向布局
    25          hbox=QHBoxLayout()#横向布局
    26          panel=QLabel()
    27          panel.setText("确定保存信息?")
    28          self.dialog=QDialog()
    29          self.dialog.resize(100,100)
    30          self.okBtn=QPushButton("确定")
    31          self.cancelBtn=QPushButton("取消")
    32 
    33          #绑定事件
    34          self.okBtn.clicked.connect(self.ok)
    35          self.cancelBtn.clicked.connect(self.cancel)
    36 
    37          self.dialog.setWindowTitle("提示信息!")
    38          #okBtn.move(50,50)#使用layout布局设置,因此move效果失效
    39          # 确定与取消按钮横向布局
    40          hbox.addWidget(self.okBtn)
    41          hbox.addWidget(self.cancelBtn)
    42 
    43          #消息label与按钮组合纵向布局
    44          vbox.addWidget(panel)
    45          vbox.addLayout(hbox)
    46          self.dialog.setLayout(vbox)
    47 
    48          self.dialog.setWindowModality(Qt.ApplicationModal)#该模式下,只有该dialog关闭,才可以关闭父界面
    49          self.dialog.exec_()
    50 
    51     #槽函数如下:
    52     def ok(self):
    53         print("确定保存!")
    54         self.dialog.close()
    55     def cancel(self):
    56         print("取消保存!")
    57         self.dialog.close()
    58 
    59 if __name__=="__main__":
    60     app=QApplication(sys.argv)
    61     win=WindowClass()
    62     win.show()
    63     sys.exit(app.exec_())

  • 相关阅读:
    VScode中Python的交互式命令环境使用笔记
    jmeter beanshell判断响应的json串,参数的值是否正确;
    类和类的继承 实现关系;
    类与类依赖关系,实例;
    类与类包含关系,实例;
    java中有package的编译执行;java编译乱码;
    java 类与类之间的关系,方法重写与方法重载的区别
    beanshell sampler构造响应数据;
    Scanner类及其中方法的使用;
    java 构造方法 代码块 this
  • 原文地址:https://www.cnblogs.com/ygzhaof/p/10064851.html
Copyright © 2011-2022 走看看