[英]Pyqt - Combobox, how to return selected text
我需要程序帮助。 这是我的Hole程序的一部分,我需要我的combobox的帮助,我有一个combobox ADV,此combobox的数据来自我的db ...我需要在combobox上获取所选项目并将其作为变量传递,因为之后,我将创建一个tablewidget并使用名称作为参数插入数据库的内容,以从表中获取“东西”。例如:我在此组合中选择“ rororo” ..因此将其选中..然后通过将其作为变量,然后在我的数据库中搜索该变量。 我知道如何进行搜索,但是我不知道如何将其作为变量传递。.我在“ pass_t” def中具有该变量。但是我想将其返回给setupUI def来进行搜索。
from PyQt4.QtGui import *
from PyQt4.QtSql import *
from PyQt4.QtCore import *
import sys
try:
_fromUtf8 = QString.fromUtf8
except AttributeError:
_fromUtf8 = lambda s: s
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(800, 600)
self.centralwidget = QWidget(MainWindow)
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
self.comboADV = QComboBox(self.centralwidget)
self.comboADV.setGeometry(QRect(110, 80, 91, 31))
self.comboADV.setObjectName(_fromUtf8("comboADV"))
self.comboADV.addItem(_fromUtf8(""))
db = QSqlDatabase.addDatabase("QMYSQL")
db.setHostName('localhost')
db.setDatabaseName('database')
db.setUserName('username')
db.setPassword('password')
if (db.open()==False):
QMessageBox.critical(None, "Database Error",
db.lastError().text())
query = QSqlQuery ("SELECT Palavra FROM Tabela053 WHERE Categoria='Adv.' ORDER BY Palavra ASC;")
index=0
while (query.next()):
self.comboADV.addItem(query.value(0).toString())
index = index+1
self.comboADV.activated.connect(self.passtt) #want to change this
#---------------------------------------important
def passtt(self):
a = self.comboADV.currentText()
print a #here i can print the selected content of my comboADV
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
MainWindow = QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
如果我没记错的话,只需在passtt函数中将它作为aa参数传递即可。 但首先,您需要更改信号:
self.comboADV.activated.connect(self.passtt) -> self.comboADV.activated[str].connect(self.passtt)
然后:
def passtt(self,item):
print(item)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.