98 lines
2.9 KiB
Python
98 lines
2.9 KiB
Python
![]() |
from PyQt5.QtCore import *
|
||
|
from PyQt5.QtGui import *
|
||
|
from PyQt5.QtWidgets import *
|
||
|
import sys
|
||
|
import os
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
# 定义询问字符文件
|
||
|
QUEST_FILE = "quest_info.txt"
|
||
|
|
||
|
|
||
|
def load_info():
|
||
|
if os.path.exists(QUEST_FILE):
|
||
|
with open(QUEST_FILE,"r") as f:
|
||
|
return f.read()
|
||
|
return ""
|
||
|
def save_info(text:str):
|
||
|
with open(QUEST_FILE,'+w') as f:
|
||
|
print("save:",text)
|
||
|
f.write(text)
|
||
|
|
||
|
class quest_text(QObject):
|
||
|
def __init__(self,title:str):
|
||
|
QObject.__init__(self)
|
||
|
self.app = QApplication(sys.argv)
|
||
|
self.w=QDialog()
|
||
|
self.w.resize(800,400)
|
||
|
self.w.setWindowTitle(title)
|
||
|
self.w.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose)
|
||
|
self.w.setWindowModality(Qt.WindowModality.ApplicationModal)
|
||
|
self.text=load_info()
|
||
|
self.text_edit = QTextEdit(self.w)
|
||
|
self.text_edit.setObjectName(u"text")
|
||
|
self.text_edit.setGeometry(QRect(20, 20, 760, 320))
|
||
|
self.text_edit.setFrameShape(QFrame.Shape.Box)
|
||
|
self.text_edit.setMidLineWidth(1)
|
||
|
self.text_edit.setVerticalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAsNeeded)
|
||
|
self.text_edit.setPlainText(self.text)
|
||
|
self.text_edit.moveCursor(QTextCursor.MoveOperation.End, QTextCursor.MoveMode.MoveAnchor)
|
||
|
self.ok_but_init()
|
||
|
self.cancel_but_init()
|
||
|
|
||
|
def ok_but_init(self):
|
||
|
self.ok_but=QPushButton(self.w)
|
||
|
self.ok_but.setObjectName(u"ok_but")
|
||
|
self.ok_but.setGeometry(QRect(700, 350, 93, 28))
|
||
|
self.ok_but.clicked.connect(self.ok_but_clicked)
|
||
|
self.ok_but.setText("确认")
|
||
|
self.ok_but.setCheckable(True)
|
||
|
self.ok_but.setChecked(True)
|
||
|
self.ok_state=False
|
||
|
|
||
|
def cancel_but_init(self):
|
||
|
self.cancel_but=QPushButton(self.w)
|
||
|
self.cancel_but.setObjectName(u"cancel_but")
|
||
|
self.cancel_but.setGeometry(QRect(600, 350, 93, 28))
|
||
|
self.cancel_but.clicked.connect(self.cancel_but_clicked)
|
||
|
self.cancel_but.setText("取消")
|
||
|
self.ok_but.setCheckable(True)
|
||
|
self.ok_state=False
|
||
|
|
||
|
def ok_but_clicked(self):
|
||
|
self.text=self.text_edit.toPlainText()
|
||
|
self.ok_state=True
|
||
|
self.w.done(QDialog.DialogCode.Accepted)
|
||
|
self.w.close()
|
||
|
|
||
|
def cancel_but_clicked(self):
|
||
|
self.text=self.text_edit.toPlainText()
|
||
|
self.ok_state=False
|
||
|
self.w.done(QDialog.DialogCode.Accepted)
|
||
|
self.w.close()
|
||
|
|
||
|
def item_clicked(self,item:QListWidgetItem ):
|
||
|
self.select_item=item.text()
|
||
|
self.w.done(QDialog.DialogCode.Accepted)
|
||
|
self.w.close()
|
||
|
def show(self):
|
||
|
# if(self.w.exec()==QDialog.DialogCode.Accepted):
|
||
|
# return self.ok_state,self.text
|
||
|
self.w.show()
|
||
|
a=self.app.exec()
|
||
|
# sys.exit()
|
||
|
save_info(self.text)
|
||
|
return self.ok_state,self.text
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
if __name__=="__main__":
|
||
|
q=quest_text("输入本次提交的描述")
|
||
|
ack,text=q.show()
|
||
|
print("ack=",ack,"text=",text)
|