马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 gopythoner 于 2017-5-4 21:53 编辑
开始学一下PYQT
先感谢 ~风介~和 wei_Y留下的教程,网上pyqt5的资料是真少,难得有这么详细简单的基础教程
按照论坛教程写了个简单的
现在我遇到一个跟之前学tkinter一样的问题(当时记得好像是需要用多线程解决,因为发现TK界面太丑了,并没有去解决就搁浅了),就是向文本框中加入内容会导致假死状态,我的要求是每次输入一行内容,然后暂停1秒,接住继续输入,但是实际的效果是,程序假死,然后等所有的时间走完,一次性把10行内容输入了,这个不是我要的效果
代码如下import sys
from PyQt5 import QtWidgets #一般窗口类
from PyQt5 import QtGui #使用图片的时候需要用到
import time
class Main(QtWidgets.QWidget):
def __init__(self,parent=None): #初始化
super().__init__(parent) #继承父类
self.setWindowTitle("The first QT") #设置标题
# self.resize(800,500) #窗口大小
self.setGeometry(100,100,800,500) #另一种设置窗口方式,前面参数是屏幕上位置
self.setWindowIcon(QtGui.QIcon("tubiao\img.ico")) #设置图标
self.setMaximumSize(800,500) #设定最大显示大小
self.setMinimumSize(800,500) #设定最小显示大小,当两者相同时,窗口大小不能改变
#一个关闭窗口按钮
self.btn_close = QtWidgets.QPushButton(self) #创建一个按钮
self.btn_close.setObjectName("close") #专属名字
self.btn_close.setText("关闭") #显示内容
self.btn_close.setGeometry(100,110,60,30) #显示位置和大小,跟窗口操作一样
self.btn_close.setIcon(QtGui.QIcon("tubiao\ooopic_1484987727.ico")) #插入图片
self.btn_close.clicked.connect(self.close) #信号和槽,信号是点击,执行是自带的方法:关闭窗口
#一个开始按钮
self.btn_run = QtWidgets.QPushButton("run",self)
self.btn_run.setText("开始")
self.btn_run.setGeometry(100,360,60,30)
self.btn_run.setIcon(QtGui.QIcon("tubiao\ooopic_1484987772.ico"))
self.btn_run.clicked.connect(self.run)
#一个文字框
self.edt_run = QtWidgets.QTextEdit(self)
self.edt_run.setGeometry(200,100,450,300)
def run(self):
for i in range(10):
self.edt_run.insertPlainText("输入数字{}".format(i)+"\n")
time.sleep(2)
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv) #创建application对象
main = Main() #实例化
main.show() #展示窗口
sys.exit(app.exec_()) #主循环
主要问题在于run函数要怎么写?
效果截图
|