python2 qt5 tentang cara menentukan sama ada rentetan kosong
某草草
某草草 2017-06-12 09:27:12
0
2
962
#!/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_())

Selepas menukar pyqt4 kepada pyqt5, tidak mengapa untuk menulis url.isEmpty() seperti ini dalam pyqt4, tetapi ralat berlaku dalam pyqt5 (tiada ralat akan dilaporkan, tetapi gelung mesej akan keluar).

某草草
某草草

membalas semua(2)
phpcn_u1582

Dalam PyQt4, kaedah toPlainText mengembalikan kelas QString dan kelas QString menyokong kaedah isEmpty. Jadi dalam PyQt4 ini tiada masalah.
Kebanyakan PyQt5 digunakan di bawah Python3 (sudah tentu PyQt5+Python2 juga boleh digunakan Kelas str asas dalam Python3 sudah menyokong pelbagai pengekodan aksara, jadi tiada QString dalam PyQt5. Semua yang menantikan jenis QString API, hanya gunakan str asli secara langsung. Begitu juga, kaedah toPlainText mengembalikan jenis str asli. str tidak mempunyai kaedah isEmpty, jadi ia akan gagal.
Anda boleh menggunakan kaedah penghakiman str biasa di sini

url = str(self.inputbox.toPlainText())  # 如果是Python2,这里需要str()转换,如果是Python3则不用
if url == ''
if len(url) == 0
if url
伊谢尔伦
url = str(self.inputbox.toPlainText())
if url:
    #非空
else:
    #空
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan