我正在使用PyQt5(pythyon 3.7,MacOs X)创建一个应用程序 当我使用说明修改文本框中的文本时
self.line_main.setText(final_text)
来自功能(已连接到按钮) 新文本无法在文本框中正确呈现(请参见屏幕截图),新旧文本都以奇怪的方式重叠。 过度简化的代码来说明这个问题:
import sys
from PyQt5 import QtCore, QtWidgets
from PyQt5.QtWidgets import QMainWindow, QWidget, QLabel, QLineEdit
from PyQt5.QtWidgets import QPushButton
from PyQt5.QtCore import QSize
class MainWindow(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
self.setMinimumSize(QSize(200, 200))
self.setWindowTitle("PyQt test")
self.line_main = QLineEdit(self)
self.line_main.move(20,20)
bt_upperCase = QPushButton('Upper Case', self)
bt_upperCase.move(20, 60)
bt_upperCase.clicked.connect(self.click_upCase)
def click_upCase(self):
final_text=self.line_main.text().upper()
self.line_main.setText(final_text)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
mainWin = MainWindow()
mainWin.show()
sys.exit( app.exec_() )
迷你应用的屏幕截图,其中“ re”作为输入,“ re”作为输出
标签有时可能会发生同样的事情,尽管有时仅可见旧文本,我需要用鼠标选择文本或调整主窗口的大小以“刷新”文本框并查看新值。 / p>
如果我仅在MacO中(仅在High Sierra和Mojave中测试并获得相同的结果)在PC中运行代码,就不会发生此问题
一些奇怪的行为是:
有人猜测为什么会发生这种情况,如何解决?
更新。 如果我在conda安装(PyQt版本5.9.2)中使用python 3.6运行代码,则问题会消失。仍然很想知道是什么原因引起的。