Как установить psycopg2 с «pip» на Python?

У меня было аналогичное требование. Вызов setEnabled(false) дает ужасный внешний вид, и пользователь не может просматривать раскрывающийся список. Переопределение showPopup() не работает. Попытка прослушать открытие меню, а затем закрыть его с помощью invokeLater, заставляет меню мигать, и снова пользователь не может просматривать меню.

В конце концов я сделал это (не говоря о его совершенстве, но он делает именно то, что я хотел):

import javax.swing.JComboBox;

public class ReadOnlyComboBox<E> extends JComboBox<E>
{
    private static final long serialVersionUID = 5866761337995322114L;

    public ReadOnlyComboBox()
    {
        this.setModel(new ReadOnlyComboBoxModel<E>());
    }

    public void setReadOnly(boolean readOnly)
    {
       ((ReadOnlyComboBoxModel<E>)this.getModel()).setReadOnly(readOnly);
    }
}

import javax.swing.DefaultComboBoxModel;

public class ReadOnlyComboBoxModel<E> extends DefaultComboBoxModel<E>
{
    private static final long serialVersionUID = -1923833835224513983L;
    private boolean readOnly;

    @Override
    public void setSelectedItem(Object anItem)
    {
        if(!readOnly)
            super.setSelectedItem(anItem);
    }

    public void setReadOnly(boolean readOnly)
    {
        this.readOnly = readOnly;
    }
}

Перед установкой выбранного элемента программно, если необходимо, вам нужно вызвать setReadOnly(false) на ReadOnlyComboBox, а затем установить его, чтобы остановить выбор пользователя.

Обратите внимание на неконтролируемый актерский состав, не проблема для меня в моей маленькой программе, но, вероятно, следует переопределить метод setModel, чтобы исключить исключение, если попытаться использовать любую другую модель .

Edit: Также обратите внимание, что прослушиватели действий по-прежнему вызываются (с неизменным выбором).

477
задан Kasramvd 14 December 2015 в 18:48
поделиться

1 ответ

На окнах это - то, как это работает
Над командной строкой после установки фляги через зернышко в виртуальной среде, осуществите эту Проверку команды

>pip install psycopg2

это

-1
ответ дан 22 November 2019 в 22:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: