繁体   English   中英

PyQt - 将组合框文本传递给变量

[英]PyQt - Pass Combobox text to a variable

我有一个组合框下拉列表,其中包含来自 SQL 查询的客户列表。 我有一个名为 FinalButton 的不同按钮,我想在其中执行其他操作。 其中之一将要求我在组合框中获取客户名称并将其存储在变量中以供 FinalButton 使用。

import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QFileDialog, QMessageBox
from config_assign_ui import Ui_ConfigAssign
import pyodbc
import pandas as pd

class Main(QtWidgets.QMainWindow, Ui_ConfigAssign):
    def __init__(self):
        QtWidgets.QMainWindow.__init__(self)
        self.setupUi(self)
        self.combo_list()
        self.FinalButton.clicked.connect(self.final_button)


    def combo_list(self):
        self.customerlistbox.clear()
        conn = pyodbc.connect(
            r'DRIVER={ODBC Driver 13 for SQL Server};'
            r'SERVER=server;'
            r'DATABASE=db;'
            r'Trusted_Connection=yes;'
            )

        querystring = """SELECT CustomerName
                         FROM [CustomerTable]"""

        cursor = conn.cursor()
        cursor.execute(querystring)
        customerlist = []
        # Dump results into a list called customerlist
        customerlist = [row[0] for row in cursor.fetchall()]
        for i in customerlist:
            self.customerlistbox.addItem(str(i))

    def final_button(self):
        print(self.customerlistbox.itemText())

最后一行产生 TypeError: itemText(self, int): not enough arguments。 我怎样才能达到我想要的?

itemText()是一种方法,它返回给定索引的项目文本,在您的情况下,您没有传递它。 我认为您需要的是所选项目的文本,为此您必须使用currentText()

def final_button(self):
    print(self.customerlistbox.currentText())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM