我正试图从平直的文本中证明这一文本是正确的。其他答案(如何在Tkinter文本框中设置对齐)说这是我的答案。我尝试使用以下代码(我使用tkinter 8.6和Python 3):
import tkinter
root = tkinter.Tk()
text_widget = tkinter.Text()
text_widget.pack(fill='both', expand=True)
text_widget.tag_configure('tag-center', justify='justify')
text_widget.insert('end', 'text ' * 10, 'tag-center')
但是,如果我运行代码:
Traceback (most recent call last):
File "C:/Users/moon/AppData/Local/Programs/Python/Python310/asking1.py", line 5, in <module>
text_widget.tag_configure('tag-center', justify='justify')
File "C:\Users\moon\AppData\Local\Programs\Python\Python310\lib\tkinter\__init__.py", line 3888, in tag_configure
return self._configure(('tag', 'configure', tagName), cnf, kw)
File "C:\Users\moon\AppData\Local\Programs\Python\Python310\lib\tkinter\__init__.py", line 1665, in _configure
self.tk.call(_flatten((self._w, cmd)) + self._options(cnf))
_tkinter.TclError: bad justification "justify": must be left, right, or center
上面写着"_tkinter.TclError:不好的理由“:必须是left,right,或center,但没有code。我看到了MS和LO作家都有E212证明。怎么做呢?谢谢!
发布于 2022-05-31 07:17:38
实际上,在tkinter中没有,没有正义函数。它只有(tk.LEFT
),(tk.CENTER
)或"right"
(tk.RIGHT
)
但不要失望,就像杰森先生说的,pyqt5有以下合理的选择:
import PyQt5.QtCore
# import PySide5.QtCore
PyQt5.QtCore.Qt.AlignLeft # PySide6.QtCore.Qt.AlignLeft
PyQt5.QtCore.Qt.AlignHCenter # PySide6.QtCore.Qt.AlignHCenter
PyQt5.QtCore.Qt.AlignRight # PySide6.QtCore.Qt.AlignRight
PyQt5.QtCore.Qt.AlignJustify # PySide6.QtCore.Qt.AlignJustify
PyQt5.QtCore.Qt.AlignTop # PySide6.QtCore.Qt.AlignTop
PyQt5.QtCore.Qt.AlignBottom # PySide6.QtCore.Qt.AlignBottom
PyQt5.QtCore.Qt.AlignVCenter # PySide6.QtCore.Qt.AlignVCenter
PyQt5.QtCore.Qt.AlignBaseline # PySide6.QtCore.Qt.AlignBaseline
那么,为什么不愉快地将pyqt5用于gui应用程序呢?)
编辑:
如果你使用qtextedit,你也可以使用PyQt5.QtWidgets.QTextEdit.setAlignment([Justification])
设置对齐。
发布于 2022-01-30 12:33:59
遗憾的是,Tkinter文本只有三个合理选项:left、center和right 。但是不要失望,您可以尝试一些名为spacing2的东西,并通过使用标记和选项配置来发现它。试试看!
你也可以试试PyQt5。他们可能有正当的选择。wxPython也是一个不错的选择。
https://stackoverflow.com/questions/70872542
复制相似问题