python2 qt5 sur la façon de déterminer si une chaîne est vide
某草草
某草草 2017-06-12 09:27:12
0
2
978
#!/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 ?

某草草
某草草

répondre à tous(2)
phpcn_u1582

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
伊谢尔伦
url = str(self.inputbox.toPlainText())
if url:
    #非空
else:
    #空
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal