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/ ...
随机推荐
- 2.4 C#的变量
在C#中,不仅有常量,还有变量,而且最常用的还是变量.下面是变量的知识. C#的变量有3个步骤:声明.赋值.使用. 变量声明的方法:数据类型 变量名; 变量赋值的方法:变量名=变量的值: 下面是这3个 ...
- mysql免安装方法
在官网上下载了个mysql-installer-community-5.6.27.0.msi,需要安装环境,检测未通过,很麻烦.之后网上查了资料之后直接下载了个压缩包mysql-5.6.27-winx ...
- Markdown语法说明(详解版)
####date: 2016-05-26 20:38:58 tags: Markdown tags && Syntax ##Markdown语法说明(详解版)杨帆发表于 2011-11 ...
- JOptionPane类提示框的一些常用的方法
JOptionPane类提示框的一些常用的方法 XMLOracleSwing 最近在做swing程序中遇到使用消息提示框的,JOptionPane类其中封装了很多的方法. 很方便的,于是就简单的整理了 ...
- Remove-Azureaccount (Can't get Azure credentials to stick in Powershel)
https://social.technet.microsoft.com/forums/azure/en-US/260df055-7c4e-4ce2-8f8d-190ad20a4b76/cant-ge ...
- Java类的基本运行顺序是怎样
我们以下面的类来说明一个基本的 Java 类的运行顺序: public class Demo{ private String name; private int age; public Demo(){ ...
- python处理xml文件
参考:https://docs.python.org/2/library/xml.etree.elementtree.html 例子: <?xml version="1.0" ...
- <Interview Problem>二叉树根到叶节点求和值匹配
题目大意:一颗二叉树,每个节点都有一个Value, 判断根节点到叶节点的路径求和值是否等于某个数Sum. 比如说如下这样一颗二叉树,76是45,21,10这条路径的求和值,77就没有满足条件的路径. ...
- Paxos算法与Zookeeper分析
1 Paxos算法 1.1 基本定义 算法中的参与者主要分为三个角色,同时每个参与者又可兼领多个角色: ⑴proposer 提出提案,提案信息包括提案编号和提议的value; ⑵acceptor 收到 ...
- 反射 __import__
__import__ 根据字符串导入模块 def run(): inp = input('请输入URL:') m,p = inp.split('/') obj = __import__(m) if h ...