python2 qt5 關於如何判斷字串為空
某草草
某草草 2017-06-12 09:27:12
0
2
931
#!/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_())

pyqt4轉換到pyqt5後url.isEmpty()在pyqt4中這樣寫是沒問題,但是在pyqt5中出錯的(不會報錯,但是會退出訊息循環) 該如何改?

某草草
某草草

全部回覆(2)
phpcn_u1582

在PyQt4中,toPlainText方法回傳的是QString類,QString類別支援isEmpty方法。所以在PyQt4這樣沒問題。
而PyQt5大多是在Python3下用的(當然PyQt5+Python2也可以),在Python3中基本str類別已經很好的支援了各類字元編碼,所以PyQt5中已經沒有QString了,所有期待QString類型的API,直接使用原生str即可。同樣的,toPlainText方法回傳的也是原生的str類型。 str沒有isEmpty方法,所以會失敗。
這裡使用普通str的判斷方法即可

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

雷雷

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!