• 使用标准输入对话框


    Qt 提供了一个 QInputDialog 类,QInputDialog 类提供了一种简单方面的对话框来获得用户的单个输入信息,目前提供了 4 种数据类型的输入,可以是一个字符串,一个 Int 类型数据,一个 double 类型数据或是一个下拉列表框的条目。

    代码:

     1 #coding: utf-8
     2 from PyQt4.QtGui import *
     3 from PyQt4.QtCore import *
     4 import sys
     5 
     6 QTextCodec.setCodecForTr(QTextCodec.codecForName("utf8"))
     7 
     8 class inputDlg(QDialog):
     9     def __init__(self, parent=None):
    10         super(inputDlg, self).__init__(parent)
    11 
    12         label1 = QLabel(self.tr("姓名"))
    13         label2 = QLabel(self.tr("性别"))
    14         label3 = QLabel(self.tr("年龄"))
    15         label4 = QLabel(self.tr("身高"))
    16 
    17         self.nameLabel = QLabel("jack")
    18         self.nameLabel.setFrameStyle(QFrame.Panel|QFrame.Sunken)
    19         self.sexLabel = QLabel(self.tr(""))
    20         self.sexLabel.setFrameStyle(QFrame.Panel|QFrame.Sunken)
    21         self.ageLabel = QLabel("25")
    22         self.ageLabel.setFrameStyle(QFrame.Panel|QFrame.Sunken)
    23         self.statureLabel = QLabel("175")
    24         self.ageLabel.setFrameStyle(QFrame.Panel|QFrame.Sunken)
    25 
    26         nameButton = QPushButton("...")
    27         sexButton = QPushButton("...")
    28         ageButton = QPushButton("...")
    29         statureButton = QPushButton("...")
    30 
    31         self.connect(nameButton, SIGNAL("clicked()"), self.slotName)
    32         self.connect(sexButton, SIGNAL("clicked()"), self.slotSex)
    33         self.connect(ageButton, SIGNAL("clicked()"), self.slotAge)
    34         self.connect(statureButton, SIGNAL("clicked()"), self.slotStature)
    35 
    36 
    37         layout = QGridLayout()
    38         layout.addWidget(label1, 0, 0)
    39         layout.addWidget(self.nameLabel, 0, 1)
    40         layout.addWidget(nameButton, 0, 2)
    41         layout.addWidget(label2, 1, 0)
    42         layout.addWidget(self.sexLabel, 1, 1)
    43         layout.addWidget(sexButton, 1, 2)
    44         layout.addWidget(label3, 2, 0)
    45         layout.addWidget(self.ageLabel, 2, 1)
    46         layout.addWidget(ageButton, 2, 2)
    47         layout.addWidget(label4, 3, 0)
    48         layout.addWidget(self.statureLabel, 3, 1)
    49         layout.addWidget(statureButton, 3, 2)
    50 
    51         self.setLayout(layout)
    52 
    53         self.setWindowTitle(self.tr("资料收集"))
    54 
    55     def slotName(self):
    56         name,ok = QInputDialog.getText(self, self.tr("用户名"), self.tr("请输入新的名字:"), QLineEdit.Normal, self.nameLabel.text())
    57         if ok and (not name.isEmpty()):
    58             self.nameLabel.setText(name)
    59 
    60     def slotSex(self):
    61         list = QStringList()
    62         list.append(self.tr(""))
    63         list.append(self.tr(""))
    64         sex,ok = QInputDialog.getItem(self, self.tr("性别"), self.tr("请选择性别:"), list)
    65 
    66         if ok:
    67             self.sexLabel.setText(sex)
    68 
    69     def slotAge(self):
    70         age,ok = QInputDialog.getInteger(self,self.tr("年龄"), self.tr("请输入年龄:"), int(self.ageLabel.text()), 0, 150)
    71         if ok:
    72             self.ageLabel.setText(str(age))
    73 
    74     def slotStature(self):
    75         stature,ok = QInputDialog.getDouble(self, self.tr("身高"), self.tr("请输入身高:"), float(self.statureLabel.text()), 0, 2300.00)
    76         if ok:
    77             self.statureLabel.setText(str(stature))
    78 
    79 app = QApplication(sys.argv)
    80 form = inputDlg()
    81 form.show()
    82 app.exec_()
  • 相关阅读:
    WMS学习笔记:1.尝试加载WMS
    ftp文件上传和下载
    [WorldWind学习]19.WebDownload
    ASP.NET C# 如何在程序中控制IIS服务或应用程序池重启?
    asp.net mvc 全局权限过滤器及继成权限方法
    使用ActionFilterAttribute 记录 WebApi Action 请求和返回结果记录
    单点登录系统功能调试界面
    asp.net 读取RedisSessionStateProvider配置
    Redis-benchmark测试Redis性能
    ASP.NET MVC中移除冗余Response Header
  • 原文地址:https://www.cnblogs.com/nju2014/p/4493098.html
Copyright © 2020-2023  润新知