|  | 
 
| 
本帖最后由 gopythoner 于 2017-5-4 21:53 编辑
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  
 开始学一下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函数要怎么写?
 
 效果截图
 
   | 
 |