簡體   English   中英

pyqt4 python QT全球

[英]pyqt4 python QT global

我寫了非常簡單的python&Qt代碼。

from PyQt4 import QtCore, QtGui

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    def _fromUtf8(s):
        return s

try:
    _encoding = QtGui.QApplication.UnicodeUTF8
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig)

class Ui_Form(object):

    def setupUi(self, Form):
        Form.setObjectName(_fromUtf8("Form"))
        Form.resize(619, 501)
        self.pushButton = QtGui.QPushButton(Form)
        self.pushButton.setGeometry(QtCore.QRect(60, 460, 98, 27))
        self.pushButton.setObjectName(_fromUtf8("pushButton"))
        self.comboBox = QtGui.QComboBox(Form)
        self.comboBox.setGeometry(QtCore.QRect(20, 410, 78, 27))
        self.comboBox.setObjectName(_fromUtf8("comboBox"))
        self.comboBox.addItem(_fromUtf8(""))
        self.comboBox.addItem(_fromUtf8(""))
        self.comboBox.addItem(_fromUtf8(""))
        self.comboBox_2 = QtGui.QComboBox(Form)
        self.comboBox_2.setGeometry(QtCore.QRect(120, 410, 78, 27))
        self.comboBox_2.setObjectName(_fromUtf8("comboBox_2"))
        self.comboBox_2.addItem(_fromUtf8(""))
        self.comboBox_2.addItem(_fromUtf8(""))
        self.comboBox_2.addItem(_fromUtf8(""))
        self.label = QtGui.QLabel(Form)
        self.label.setGeometry(QtCore.QRect(20, 380, 81, 21))
        self.label.setObjectName(_fromUtf8("label"))
        self.label_2 = QtGui.QLabel(Form)
        self.label_2.setGeometry(QtCore.QRect(120, 380, 91, 21))
        self.label_2.setObjectName(_fromUtf8("label_2"))

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        Form.setWindowTitle(_translate("Form", "Form", None))
        self.pushButton.setText(_translate("Form", "BASLA", None))
        self.comboBox.setItemText(0, _translate("Form", "780", None))
        self.comboBox.setItemText(1, _translate("Form", "1350", None))
        self.comboBox.setItemText(2, _translate("Form", "1850", None))
        self.comboBox_2.setItemText(0, _translate("Form", "64", None))
        self.comboBox_2.setItemText(1, _translate("Form", "128", None))
        self.comboBox_2.setItemText(2, _translate("Form", "256", None))
        self.label.setText(_translate("Form", "USRP FRQ", None))
        self.label_2.setText(_translate("Form", "FFT BOYUTU", None))

    def deger(self):
        self.us=int(self.comboBox.currentText()) 
        #print "USRP Frekansı",self.us
        self.fft=int(self.comboBox_2.currentText()) 
        #print "FFT Boyutu",self.fft

    def basla(self):
        QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL("clicked()"), self.deger)


if __name__ == "__main__":
    import sys
    app = QtGui.QApplication(sys.argv)
    Form = QtGui.QWidget()
    ui = Ui_Form()
    ui.setupUi(Form)
    ui.basla()
    Form.show()
    print ui.us   
    app.exec_()

當我運行程序時,我收到一條錯誤消息。 追溯(最近一次呼叫最近):打印ui.us中的文件“ ./dene.py”,第88行,AttributeError:'Ui_Form'對象沒有屬性'us'。

我試過了 :

def deger():
     global us
     us=int(comboBox.currentText())

我目前收到以下錯誤:

我們正在打印文件“ ./tt2.py”,行71,NameError:未定義全局名稱“ us”

造成此錯誤的原因是什么? 如何避免此錯誤? 請幫幫我

首先,不要使用全局變量。

關於你的問題。 您收到導入錯誤,因為在打印語句之前未分配self.us(您未調用方法“ deger”)。 無論如何,您應該使用PyQt ui生成器創建ui文件,這樣就不會出現此類錯誤。

我修改了您的代碼。 現在,它不再發出錯誤消息,並且單擊按鈕后,您將獲得打印組合框的內容。 如果仍然有任何問題,請告訴我。 我很樂意為您服務。

from PyQt4 import QtCore, QtGui

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    def _fromUtf8(s):
        return s

try:
    _encoding = QtGui.QApplication.UnicodeUTF8
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig)

class Ui_Form(object):

    def __init__(self):
        self.us = None

    def setupUi(self, Form):
        Form.setObjectName(_fromUtf8("Form"))
        Form.resize(619, 501)
        self.pushButton = QtGui.QPushButton(Form)
        self.pushButton.setGeometry(QtCore.QRect(60, 460, 98, 27))
        self.pushButton.setObjectName(_fromUtf8("pushButton"))
        self.comboBox = QtGui.QComboBox(Form)
        self.comboBox.setGeometry(QtCore.QRect(20, 410, 78, 27))
        self.comboBox.setObjectName(_fromUtf8("comboBox"))
        self.comboBox.addItem(_fromUtf8(""))
        self.comboBox.addItem(_fromUtf8(""))
        self.comboBox.addItem(_fromUtf8(""))
        self.comboBox_2 = QtGui.QComboBox(Form)
        self.comboBox_2.setGeometry(QtCore.QRect(120, 410, 78, 27))
        self.comboBox_2.setObjectName(_fromUtf8("comboBox_2"))
        self.comboBox_2.addItem(_fromUtf8(""))
        self.comboBox_2.addItem(_fromUtf8(""))
        self.comboBox_2.addItem(_fromUtf8(""))
        self.label = QtGui.QLabel(Form)
        self.label.setGeometry(QtCore.QRect(20, 380, 81, 21))
        self.label.setObjectName(_fromUtf8("label"))
        self.label_2 = QtGui.QLabel(Form)
        self.label_2.setGeometry(QtCore.QRect(120, 380, 91, 21))
        self.label_2.setObjectName(_fromUtf8("label_2"))

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        Form.setWindowTitle(_translate("Form", "Form", None))
        self.pushButton.setText(_translate("Form", "BASLA", None))
        self.pushButton.clicked.connect(self.buttonAction)
        self.comboBox.setItemText(0, _translate("Form", "780", None))
        self.comboBox.setItemText(1, _translate("Form", "1350", None))
        self.comboBox.setItemText(2, _translate("Form", "1850", None))
        self.comboBox_2.setItemText(0, _translate("Form", "64", None))
        self.comboBox_2.setItemText(1, _translate("Form", "128", None))
        self.comboBox_2.setItemText(2, _translate("Form", "256", None))
        self.label.setText(_translate("Form", "USRP FRQ", None))
        self.label_2.setText(_translate("Form", "FFT BOYUTU", None))

    def deger(self):
        self.us=int(self.comboBox.currentText()) 
        #print "USRP Frekansı",self.us
        self.fft=int(self.comboBox_2.currentText()) 
        #print "FFT Boyutu",self.fft

    def buttonAction(self):
        print("The button has been clicked")
        print("Text in comboBox 1: " + self.comboBox.currentText())
        print("Text in comboBox 2: " + self.comboBox_2.currentText())


if __name__ == "__main__":
    import sys
    app = QtGui.QApplication(sys.argv)
    Form = QtGui.QWidget()
    ui = Ui_Form()
    ui.setupUi(Form)
    Form.show()
    print(ui.us)   
    app.exec_()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM