闪退有五种可能
py 文件的默认开启程序不对,不能开启 py
默认开启程序执行出错执行出错
.py 执行出错
内存不足或错误
硬盘有问题
你的 console 上面显示的是 C:\windows\py.exe
一般是 C:\Users\xxxxxxx\AppData\Local\Programs\Python\Launcher\py.exe
也许是因为你有装了其他旧版本的 python, 造成执行错误.
重设一下你的档案开启设定
但是我的另一个文件可以双击运行
你能提供可运行, 但会闪退的主要可用的代码吗?
这样比较直接, 也容易找出问题。
# 从文件中加载UI定义 qfile_stats = QFile(r C:\Users\Administrator\Desktop\jsr\程序及数据\ui文件\R编解码.ui ) qfile_stats.open(QFile.ReadOnly) qfile_stats.close() # 从 UI 定义中动态 创建一个相应的窗口对象 # 注意:里面的控件对象也成为窗口对象的属性了 # 比如 self.ui.button , self.ui.textEdit self.ui = QUiLoader().load(qfile_stats) self.ui.button.clicked.connect(self.coding) self.ui.pushButton.clicked.connect(self.decoding) self.ui.pushButton_2.clicked.connect(self.PUSH_BUTTON2) self.ui.pushButton_3.clicked.connect(self.PUSH_BUTTON3) def coding(self): replied = self.ui.textedit.toPlainText() ip = self.ui.textedit1.toPlainText() message1 = open(replied, r ) message2 = message1.read() i3 = 0 receivelist1 = [] Message = message2.lower() MESSAGE = Message.replace( \n , ) while i3 len(MESSAGE): a1 = encode(MESSAGE[i3]) receivelist1.append(a1) i3 += 1 if i3 == len(MESSAGE): orderedlist = \n .join(receivelist1) f = open(ip, w+ ) f.writelines(orderedlist) f.close() QMessageBox.about(self.ui, , 编码成功 ) def decoding(self): replied = self.ui.textedit.toPlainText() ip = self.ui.textedit1.toPlainText() Filehandle = open(replied, r ) n = Filehandle.read() Filehandle.close() v = n.split( \n ) i2 = 0 receivelist = [] while i2 len(v): a = decode(v[i2]) receivelist.append(a) i2 += 1 if i2 == len(v): orderedlist1 = .join(receivelist) f = open(ip, w+ ) f.writelines(orderedlist1) f.close() QMessageBox.about(self.ui, , 解码成功 ) def PUSH_BUTTON2(self): version = **********使用说明**********
主要是你的代码用的是非阻塞窗口,
在 IDLE, 所有的变量,对象在执行完后,还会存在,不会主动清除 Python 的环境
在 CONSOLE/CMD 中,所有的变量,对象在执行完后,窗口会存在,但在 CONSOLE/CMD 会清除 Python 的环境,也会把窗口给关了,并不会保存 Python 的执行环境.
原来你少了最后一行 sys.exit (app.exec_()) 这样就 OK 了
谢谢大佬