Maison  >  Questions et réponses  >  le corps du texte

python2 qt5 sur la façon de déterminer si une chaîne est vide

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# QQ: 78619808
# Created by Kylin on 2017/5/31
import sys
from PyQt5.QtWidgets import *

class Window(QWidget):
    def __init__(self):
        super(Window,self).__init__()
        self.setWindowTitle(u'加密字符串')
        self.setFixedSize(300,200)
        vbox=QVBoxLayout()
        self.inputbox=QTextEdit()
        vbox.addWidget(self.inputbox)
        hbox=QHBoxLayout()
        tranbtn=QPushButton(u'加密')
        aboutbtn=QPushButton(u'关于')
        self.resultLabel = QLabel("Result:")
        hbox.addWidget(aboutbtn)
        hbox.addWidget(tranbtn)
        aboutbtn.clicked.connect(self.OnAbout)
        tranbtn.clicked.connect(self.OnTran)
        vbox.addLayout(hbox)
        self.outputbox=QTextEdit()
        vbox.addWidget(self.outputbox)
        vbox.addWidget(self.resultLabel)
        self.setLayout(vbox)

    def OnAbout(self):
        QMessageBox.about(self,u'关于',u'字符串加密工具 by 史艳文')

    def OnTran(self):
        url = self.inputbox.toPlainText()
        if url.isEmpty(): #执行到这里出错了,退出了消息循环
            self.resultLabel.setText("是空的")
        self.resultLabel.setText("不是空的")


if __name__=='__main__':
    app=QApplication(sys.argv)
    myshow=Window()
    myshow.show()
    sys.exit(app.exec_())

Après avoir converti pyqt4 en pyqt5, vous pouvez écrire url.isEmpty() comme ceci dans pyqt4, mais une erreur se produit dans pyqt5 (aucune erreur ne sera signalée, mais la boucle de message se terminera). Comment la changer ?

某草草某草草2708 Il y a quelques jours934

répondre à tous(2)je répondrai

  • phpcn_u1582

    phpcn_u15822017-06-12 09:29:12

    Dans PyQt4, la méthode toPlainText renvoie la classe QString et la classe QString prend en charge la méthode isEmpty. Donc, dans PyQt4, ce n'est pas un problème.
    La plupart de PyQt5 est utilisé sous Python3 (bien sûr, PyQt5+Python2 peuvent également être utilisés). La classe str de base de Python3 prend déjà en charge divers encodages de caractères, il n'y a donc pas de QString dans PyQt5. Tous ceux qui attendent avec impatience le type QString. API, utilisez simplement la str native directement. De même, la méthode toPlainText renvoie le type str natif. str n'a pas de méthode isEmpty, elle échouera donc.
    Vous pouvez utiliser la méthode de jugement str ordinaire ici

    url = str(self.inputbox.toPlainText())  # 如果是Python2,这里需要str()转换,如果是Python3则不用
    if url == ''
    if len(url) == 0
    if url

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-06-12 09:29:12

    url = str(self.inputbox.toPlainText())
    if url:
        #非空
    else:
        #空

    répondre
    0
  • Annulerrépondre