cari

Rumah  >  Soal Jawab  >  teks badan

python2 qt5 tentang cara menentukan sama ada rentetan kosong

#!/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).

某草草某草草2731 hari yang lalu955

membalas semua(2)saya akan balas

  • phpcn_u1582

    phpcn_u15822017-06-12 09:29:12

    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

    balas
    0
  • 伊谢尔伦

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

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

    balas
    0
  • Batalbalas