我刚刚在大学开设了第一门编程课程,接下来的三个月我没有额外的编程课程,所以我决定在这个“休息”期间做一个小项目。
我要做的是为我以前工作过的较小的Wiki编辑程序。它假设使用户更容易使用模板之类的东西,并且还有一个向导来帮助用户制作基本页面。我和一些年龄较大的学生交谈,他们推荐pyqt用于软件的GUI。
现在问题,我觉得这是一个非常脏的黑客: 我现在的解决方案是使用内置的复制和粘贴命令,问题是,如果我只是单击按钮以获得粗体,而不标记文本,我得到: '''当前在剪贴板中的文字'''我只是希望它添加''''''。
这是有问题的(重要)代码,当按下/按键时,我显然会调用addBold。
self.textEdit = QtGui.QTextEdit()
def.addBold(self):
self.textEdit.copy()
self.textEdit.insertPlainText("\'\'\'")
self.textEdit.paste()
self.textEdit.insertPlainText("\'\'\'")
我宁愿拥有的代码如下:
x=markedText
if not x:
self.textEdit.insertPlainText("\'\'\' \'\'\'")
else:
self.textEdit.insertPlainText("\'\'\'"+x+"\'\'\'")
x = None
那么有谁知道如何将标记文本分配给x?或者还有另一种更好的解决方案吗?
答案 0 :(得分:1)
from PyQt4.QtGui import *
from PyQt4.QtCore import SIGNAL
class Widget(QWidget):
def __init__(self, parent=None):
QWidget.__init__(self)
self.textedit = QTextEdit()
self.clip = QApplication.clipboard()
self.button = QPushButton("Bold")
self.connect(self.button, SIGNAL("clicked()"), self.addBold)
layout = QVBoxLayout()
layout.addWidget(self.textedit)
layout.addWidget(self.button)
self.setLayout(layout)
def addBold(self):
self.clip.clear()
self.textedit.copy()
currentText = self.clip.text()
self.textedit.insertPlainText("'''%s'''" % currentText)
app = QApplication([])
widget = Widget()
widget.show()
app.exec_()
可悲的是,在没有操纵剪贴板的情况下我找不到办法。希望这会有所帮助。