python GUI输入窗口
为了解决 sublime text 下 python 的 raw_input() 函数无法起效,便萌生了个用 GUI 窗口来获取输入的想法,一开始想用 Tkinter,后来想了下还是用 PyQt 吧,一来代码量差不到哪里去,二来 Qt 显然更美观一些。封装成一个模块 Input.py:
#!/usr/bin/env python
#-*- coding: utf-8 -*- def getInput(label_str=None):
'''Return the utf-8 string of text that you write in the lineEdit.
label_str: the string as the prompt of the label in the dialog.'''
from PyQt4 import QtGui, QtCore
import sys if label_str == None:
label_str = u'窗口以Unicode编码返回你所输入的信息:'
else:
label_str = unicode(label_str) class MyWindow(QtGui.QDialog): input_str = '' def __init__(self):
QtGui.QDialog.__init__(self)
self.setWindowTitle(u'GUI Input') self.label = QtGui.QLabel(label_str)
self.lineEdit = QtGui.QLineEdit() self.ok = QtGui.QPushButton(u'确定')
self.connect(self.ok, QtCore.SIGNAL('clicked()'), self.getLine) self.clean = QtGui.QPushButton(u'清空')
self.connect(self.clean, QtCore.SIGNAL('clicked()'), self.cleaning) self.cancel = QtGui.QPushButton(u'取消')
self.connect(self.cancel, QtCore.SIGNAL('clicked()'), self.quit) layout = QtGui.QGridLayout()
layout.addWidget(self.label, 0, 0, 1, 4)
layout.addWidget(self.lineEdit, 1, 0, 1, 4)
layout.addWidget(self.ok, 2, 1, 1, 1)
layout.addWidget(self.clean, 2, 2, 1, 1)
layout.addWidget(self.cancel, 2, 3, 1, 1)
self.setLayout(layout) MyWindow.input_str = '' def getLine(self):
MyWindow.input_str = str(self.lineEdit.text().toUtf8())
self.close() def cleaning(self):
self.lineEdit.setText('') def quit(self):
MyWindow.input_str = ''
self.close() app = QtGui.QApplication(sys.argv)
win = MyWindow()
win.show()
app.exec_()
return MyWindow.input_str if __name__ == '__main__':
pre_str = getInput()
now_str = pre_str.decode('utf-8')
print type(pre_str), type(now_str)
print pre_str
# print long(pre_str)
# fp = open(now_str + '.txt', 'wb+')
# fp.close()
使用时只需要 import Input,然后使用 Input.getInput('xxx') 就行了,试了下还是能支持中文的,只需要安装 PyQt4 或者 PyQt5 模块就行了。效果如下:

在输入框输入任何字符串后按确定就可以返回 Unicode 编码的 string,在 sublime text 下用 python 开发调试时就再也不用担心如何方便地进行输入的问题了。
python GUI输入窗口的更多相关文章
- Python GUI之tkinter窗口视窗教程大集合(看这篇就够了) JAVA日志的前世今生 .NET MVC采用SignalR更新在线用户数 C#多线程编程系列(五)- 使用任务并行库 C#多线程编程系列(三)- 线程同步 C#多线程编程系列(二)- 线程基础 C#多线程编程系列(一)- 简介
Python GUI之tkinter窗口视窗教程大集合(看这篇就够了) 一.前言 由于本篇文章较长,所以下面给出内容目录方便跳转阅读,当然也可以用博客页面最右侧的文章目录导航栏进行跳转查阅. 一.前言 ...
- 转载:python原生态的输入窗口抖动+输入特效
python原生态的输入窗口抖动+输入特效 出处:https://coding.net/u/acee/p/PythonPowerInput/git/blob/master/test_power_inp ...
- python GUI初步
- 使用PyQt来编写第一个Python GUI程序
原文:使用PyQt来编写第一个Python GUI程序 本文由 伯乐在线 - Lane 翻译,Daetalus 校稿.未经许可,禁止转载!英文出处:pythonforengineers.com.欢迎加 ...
- python GUI图形化编程-----wxpython
一.python gui(图形化)模块介绍: Tkinter :是python最简单的图形化模块,总共只有14种组建 Pyqt :是python最复杂也是使用最广泛的图形化 Wx ...
- Python GUI 编程
Python GUI编程(Tkinter) Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下: Tkinter: Tkinter 模块(Tk 接口)是 Python 的 ...
- Python GUI编程(Tkinter) windows界面开发
Python实现GUI简单的来说可以调用Tkinter库,这样一般的需求都可以实现,显示简单的windows窗口代码如下: python_gui.py 1 #!C:\Python27\python.e ...
- python GUI尝鲜(但当涉猎,见往事耳)
第一步:简单的窗口和内容 import tkinter as tk window = tk.Tk() # 窗口obj对象 window.title('my TK') # 窗口名字 window.geo ...
- Python GUI编程(Tkinter)(一)
tk官网的教程学习: https://tkdocs.com/tutorial/firstexample.html 学习blog: https://www.cnblogs.com/aland-1415/ ...
随机推荐
- Apache与Tomcat的整合
一 Apache与Tomcat比较联系 apache支持静态页,tomcat支持动态的,比如servlet等. 一般使用apache+tomcat的话,apache只是作为一个转发,对jsp的处理是由 ...
- 从js向Action传中文参数出现乱码问题的解决方法
Action获取jsp表单中的中文参数,只要整个项目都采用UTF-8编码格式都不会出现乱码问题:但JSP中用到JS,并从JS向Action传中文参数,就会出现中文乱的现象 做项目的时候,发现A ...
- oracle 11g如何完全卸载
方法/步骤 停用oracle服务:进入计算机管理,在服务中,找到oracle开头的所有服务,右击选择停止 在开始菜单中,找到Universal Installer,运行Oracle Unive ...
- 关于MySQL相关的查看显示信息:
关于MySQL相关的查看显示信息: 数据库范围: 一.查看所有的数据库:(仅仅是看数据库数量与名字) mysql> show databases; 二.查看某个数据库的创建信息:(主要看数据库的 ...
- Android数字签名
描述你对Android数字签名的理解? 数字签名就是为程序打上一个标记来作为自己的标识,是Android系统要求的,若一个Android程序没有经过数字签名,没办法安装到系统: 签名也是对apk的一种 ...
- python字符串方法的简单使用
学习python字符串方法的使用,对书中列举的每种方法都做一个试用,将结果记录,方便以后查询. (1) s.capitalize() ;功能:返回字符串的的副本,并将首字母大写.使用如下: >& ...
- CSS2中的定位属性
这也是一个重点!
- jquery学习方法
http://www.runoob.com/jquery/jquery-tutorial.html jQuery 语法 通过 jQuery,您可以选取(查询,query) HTML 元素,并对它们执行 ...
- CEF源码编译和生产库的使用
CEF版本是Branch 2171 开发环境是VS2012 查看一下libcef_dll_wrapper工程属性,确定Code Generation 选择MTD(Debug) 或者MT(Release ...
- PSR-1:基本的代码风格
PHP标签 必须把PHP代码放在<?php ?>或<?= ?>标签中.不得使用其他PHP标签句法. 编码 所有PHP文件都必须使用UTF-8字符集编码,而且不能有字节顺序标记( ...