PyQt - передать текст Combobox в переменную - PullRequest
1 голос
/ 21 марта 2019

У меня есть выпадающий список, который содержит список клиентов из 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): недостаточно аргументов. Как мне добиться того, чего я хочу?

1 Ответ

1 голос
/ 21 марта 2019

itemText() - это метод, который возвращает текст элемента с указанным индексом, в вашем случае вы не передаете его.Я думаю, что вам требуется текст выбранного элемента, и для этого вы должны использовать currentText()

def final_button(self):
    print(self.customerlistbox.currentText())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...