首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pyside PlainText占位符文本未显示

Pyside PlainText占位符文本未显示
EN

Stack Overflow用户
提问于 2021-09-03 20:47:39
回答 1查看 122关注 0票数 0

我已经为我的项目创建了一个gui,我需要为一个QPlainText使用占位符文本(我使用qt设计器创建gui并生成抛出的pyside代码),这有点乏味,但我现在就是这样滚动的。我有一个问题,尽管占位符-它不会显示在纯文本上,除非im写作,然后删除。我需要它在任何时候显示,除非占位符被点击或标签到。我在网上找到了一些解决方案,但我看到的答案中,似乎没有一个对me.most有效,但我没有完全理解这个想法,甚至当我试图将焦点设置为清晰或其他对象时,它们也没有在我的整个gui上工作。此外,我需要从qt设计器本身解决这个问题,或者抛出主类im使用-因im,每次更改gui并生成一个新的gui,所以gui中的代码更改不会进一步应用。

我添加了下面的代码,作为我的项目中使用的纯文本im的最小示例。我知道,如果im生成的代码在最近更改占位符后抛出pyqt5,它将按我的意愿工作,但不幸的是,我需要它在尚未更新的pyside中。

代码语言:javascript
复制
import sys

from PySide2.QtCore import *
from PySide2.QtGui import *
from PySide2.QtWidgets import *


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        if not MainWindow.objectName():
            MainWindow.setObjectName(u"MainWindow")
    MainWindow.resize(480, 640)
    self.centralwidget = QWidget(MainWindow)
    self.centralwidget.setObjectName(u"centralwidget")
    self.shifted_text_encode = QPlainTextEdit(self.centralwidget)
    self.shifted_text_encode.setObjectName(u"shifted_text_encode")
    self.shifted_text_encode.setGeometry(QRect(80, 170, 311, 131))
    self.shifted_text_encode.setFocusPolicy(Qt.StrongFocus)
    self.shifted_text_encode.setTabChangesFocus(True)
    MainWindow.setCentralWidget(self.centralwidget)
    self.statusbar = QStatusBar(MainWindow)
    self.statusbar.setObjectName(u"statusbar")
    MainWindow.setStatusBar(self.statusbar)

    self.retranslateUi(MainWindow)

    QMetaObject.connectSlotsByName(MainWindow)
# setupUi

def retranslateUi(self, MainWindow):
    MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"MainWindow", None))
    self.shifted_text_encode.setPlainText("")
    self.shifted_text_encode.setPlaceholderText(QCoreApplication.translate("MainWindow", u"Enter text", None))
# retranslateUi
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-03 21:06:15

它似乎是一个Qt错误,因为我也在Qt5和Qt6中复制它。

解释:

在私有Qt中,有一个函数可以重新计算placeHolderText是否可见,并且当文本发生变化时会调用它,但是当设置placeHolder导致意外行为时,它不会被重新计算。

解决办法

一个可能的解决方案是删除self.shifted_text_encode.setPlainText("")或在self.shifted_text_encode.setPlaceholderText(...)之后使用self.shifted_text_encode.clear()

我刚报告了窃听器QTBUG-96212

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69050400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档