2015-10-02 22 views
0

我有一個combox,並且想要將框中選擇的值添加到變量中。變量。我從文檔中嘗試了一些東西,只是將它設置爲Qlabel才成功。任何幫助,請PYQT Qcombobox設置的值被選爲一個變量

 self.languageLbl = QtGui.QLabel("Download_IVR", self) 
    comboBox = QtGui.QComboBox(self) 
    comboBox.addItem("IVR_ITALY") 
    comboBox.addItem("IVR_FRANCE") 
    comboBox.addItem("IVR_SPAIN") 
    comboBox.addItem("IVR_GERMANY") 
    comboBox.move(650, 250) 
    comboBox.resize(150,40) 
    self.languageLbl.move(650,150) 
    comboBox.activated[str].connect(self.languageChoice) 

def download_button(self): 

    ivrLang = self.comboBox.currentText() 

我想ivrLang設置在下拉列表中選擇的項目。謝謝!

+0

謝謝主席先生的努力 – Anekdotin

回答

1

你沒有將你的信號連接到你的回調函數。您需要:

self.combobox.activated[str].connect(self.download_button) 

和下載按鈕應該是這樣的:

def download_button(self, text): 
    irvLang = text 

請注意,您還沒有與該變量irvLang做任何事情。

而且這將是明智的使用self使類的組合框和屬性:

self.comboBox = QtGui.QComboBox(self) 

編輯: 下面是一個完整的例子,做什麼你似乎希望。

from PyQt4 import QtGui 

class MainWindow(QtGui.QMainWindow): 
    def __init__(self): 
     super(MainWindow, self).__init__() 
     self.cb = QtGui.QComboBox(self) 
     self.cb.addItem("One") 
     self.cb.addItem("Two") 
     self.cb.activated[str].connect(self.selected) 

    def selected(self, text): 
     self.selected_text = text 
     print self.selected_text 

app = QtGui.QApplication([]) 
mw = MainWindow() 
mw.show() 
app.exec_() 
+0

當我去打印irvLang,則返回「假」?有什麼建議麼?試圖使用複選框中的變量添加到數據庫中的 – Anekdotin

+0

。所以它應該打印'IVR_ITALY'而不是'假' – Anekdotin

+0

成爲我的英雄人!我也嘗試varios的東西以及 – Anekdotin

0

我最終將ivrLang設置爲Qlabel。所以當QLabel被顯示時,變量被設置爲QLabel的文本。這樣我就可以同時獲得標籤和變量。也許是,也許不是最好的方式做到這一點,但它的作品

def languageChoice(self, text): 

     self.languageLbl.setText(text) 
    def download_button(self, text): 
     directoryUser = self.directory 
     ivrNum = self.lblNumber.text() 
     username = self.userName.text() 

     ivrLang = self.languageLbl.text() 
+0

如果有人發佈任何有效的,結構更好,感覺自由:)我接受這個答案 – Anekdotin