#coding=utf-8

#第一个练习,登录框

import sys
from PyQt4 import QtGui,QtCore #登录框
class LoginBox(QtGui.QWidget):
def __init__(self):
super(LoginBox, self).__init__()
self.initUI() def initUI(self): vBoxLayout = QtGui.QVBoxLayout() hBoxLayout_1 = QtGui.QHBoxLayout()
nameLabel = QtGui.QLabel(u"姓名:", self)
self.nameInputEdit = QtGui.QLineEdit(self)
self.nameInputEdit.textChanged.connect(self.inputName)
hBoxLayout_1.addWidget(nameLabel)
hBoxLayout_1.addWidget(self.nameInputEdit)
vBoxLayout.addLayout(hBoxLayout_1) hBoxLayout_2 = QtGui.QHBoxLayout()
passwordLabel = QtGui.QLabel(u"密码:", self)
self.passwordInputEdit = QtGui.QLineEdit(self)
self.passwordInputEdit.textChanged.connect(self.inputPassword)
hBoxLayout_2.addWidget(passwordLabel)
hBoxLayout_2.addWidget(self.passwordInputEdit)
vBoxLayout.addLayout(hBoxLayout_2) hBoxLayout_3 = QtGui.QHBoxLayout()
okBtn = QtGui.QPushButton(u"确定", self)
cancleBtn = QtGui.QPushButton(u"取消", self)
okBtn.clicked.connect(self.clickOkBtn)
cancleBtn.clicked.connect(self.clickCancleBtn)
hBoxLayout_3.addWidget(okBtn)
hBoxLayout_3.addWidget(cancleBtn)
vBoxLayout.addLayout(hBoxLayout_3) self.setLayout(vBoxLayout) self.setWindowIcon(QtGui.QIcon("icon.png"))
self.setWindowTitle(u"登录框")
self.resize(300, 150)
self.setCenterPos() def inputName(self, text):
self.name = text
print "input name is " + str(self.name) def inputPassword(self, text):
self.password = text
print "input password " + str(self.password) def clickOkBtn(self):
sender = self.sender()
print unicode(sender.text()) + " be clicked"
info = u"姓名:" + str(self.name) + u" 密码:" + str(self.password)
reply = QtGui.QMessageBox.question(self, u"提示", info, QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)
if reply == QtGui.QMessageBox.Yes:
print "right!"
else:
self.nameInputEdit.setText("")
self.passwordInputEdit.setText("") def clickCancleBtn(self):
sender = self.sender()
print unicode(sender.text()) + " be clicked"
self.close() def setCenterPos(self):
screen = QtGui.QDesktopWidget().screenGeometry()
selfSize = self.size()
self.move((screen.width() - selfSize.width())/2, (screen.height() - selfSize.height())/2) def main():
app = QtGui.QApplication(sys.argv)
lb = LoginBox()
lb.show()
sys.exit(app.exec_()) if __name__ == "__main__":
main()

pyQt 每日一练习 -- 登录框的更多相关文章

  1. PyQt中登录框设计

    很多软件,比如QQ,亦或一些管理系统,运行之后都会先弹出一个登录框,只有登录成功了,才能进入软件主界面. 以前在邮件列表中回答过如何做登录框,这里重新整理下. 从刚开始做Delphi的时候就有不少人纠 ...

  2. 4.羽翼sqlmap学习笔记之Post登录框注入

    4.Sqlmap系列教程——post登录框注入注入点: http://xxx.xxx.com/Login.asp 注入方式一: 1.对着注入点使用burp抓包,保存txt格式文件. 2.输入命令: . ...

  3. Discuz! X2.5判断会员登录状态及外部调用注册登录框

    Discuz! X2.5判断会员登录状态及外部调用注册登录框 有关discuz论坛会员信息,收集的一些资料: 用dedecms+discuz做了个门户加论坛形式的网站,但是dedecms顶部目前只能q ...

  4. Sqli-LABS通关笔录-11[sql注入之万能密码以及登录框报错注入]

    在这一关卡我学到了 1.万能密码的构造,大概的去揣测正常的SQL语句是如何的. 2. 3. 00x1 SQL万能密码的构造 在登录框当中可以添加了一个单引号.报错信息如下所示: 据此报错,我们大概的可 ...

  5. javascript实例学习之三——类新浪微博的登录框

    该登录框和百度的搜索框类似,可以实现如下效果: 1.文字输入时自动弹出提示层 2,提示层根据输入文字进行自动过滤 3,提示层可以使用上下按键进行选择 4,提示层可以点击或者回车来确认输入 微博登录框h ...

  6. phpmyadmin 4.x 版本无法看到登录框的处理

    由于个人dreamhost即将到期问题,购买了一台VPS. 配置了一个CentOS 6.4 Linux 服务器,用Nginx+php-fpm搭建的环境. 这些都是废话,下面是重点: 当搭建后配置php ...

  7. csdn的登录框好难看

    不好意思说实话了,新的登陆框样式挺难看的,那种橙不明朗,介于黄和橙之间,跟整个网站主色调红和黑很不搭.不过,倒是有点跟风Win8平实的style,但是比Win8更简陋了点. tooltip要不加都不加 ...

  8. JQuery+CSS3实现封装弹出登录框效果

    原文:JQuery+CSS3实现封装弹出登录框效果 上次发了一篇使用Javascript来实现弹出层的效果,这次刚好用了JQuery来实现,所以顺便记录一下: 因为这次使用了Bootstrap来做一个 ...

  9. 第一百三十三节,JavaScript,封装库--弹出登录框

    JavaScript,封装库--弹出登录框 封装库,增加了两个方法 yuan_su_ju_zhong()方法,将获取到的区块元素居中到页面,chuang_kou_shi_jian()方法,浏览器窗口事 ...

随机推荐

  1. jquery ajax 开发手记

    1.json解析的格式要求更严格了,必须全部加引号,否则无法识别 {"result":"false"} 2.ashx如果要使用Session需要继承接口IReq ...

  2. [Swift系列]001-入门准备

    [引子] 最新的苹果发布会上公布了新的苹果编程语言Swift,并且演示了Xcode 6 Beta的一些新功能. 据苹果公司称,这个新语言开放的API更多,实用起来更方便,总之是值得学习.使用,比C/o ...

  3. mysql三

    修改字段名 mysql> alter table users change id user_id INT UNSIGNED AUTO_INCREMENT; 修改字段类型 mysql> al ...

  4. DelegatingFilterProxy

    安全过滤器链 Spring Security的web架构是完全基于标准的servlet过滤器的. 它没有在内部使用servlet或任何其他基于servlet的框架(比如spring mvc), 所以它 ...

  5. scala学习笔记(7):函数(1)

    函数是Scala的第一公民! 1  基本定义 scala> def max(x: Int, y: Int): Int = { if (x > y) x else y } 跟着是括号里带有冒 ...

  6. (三)spark集群DHCP IP变化后的处理

    学校的网比较特殊(本人比较菜),需要DHCP获得地址,那么有时候IP被占用了,应该如何应对呢? 1)修改/etc/hosts 2) 修改spark-env.sh 里的 Master 地址 ,Maste ...

  7. Excel 之查找与替换

    Excel查找与替换 1,一旦学会查找,替换就简单了. 2,查找下面有一个选项,里面有对查找的范围进行限制 3,你可以选中一个区域,然后再查找,查找只会在你选择的区域里面进行 4,查找只能找特定值,而 ...

  8. 如何在MySql中记录SQL日志

    SQL server有一个sql profiler可以实时跟踪服务器执行的SQL语句,这在很多时候调试错误非常有用.例如:别人写的复杂代码.生产系统.无调试环境.无原代码... ...   查了一下资 ...

  9. 多种css3时尚侧栏菜单展开显示效果Off-Canvas Menu Effects

    今天我们想分享多种css3时尚侧栏菜单展开显示效果.侧边栏应用广泛,我们之前已经产生了一些效果灵感.风格演变,今天我们要展示一套新的灵感的现代效果.不同的布局和菜单的同步转换和页面可以让一切看起来更有 ...

  10. Drupal处理缓存的方式

    Drupal的后台数据库中有很多以cache开头的表,这些都是Drupal的缓存数据表. Drupal的缓存机制使用了接口方式,所有的缓存对象都必须实现DrupalCacheInterface接口: ...