1

私が書いている小さなプログラムの一部として EasyGUI を使用しています。その中で、IntegerBoxの「関数」を使用しています。

この関数のパラメーターの一部は、下限と上限 (入力された値の制限) です。値が下限を下回っている場合、または上限を超えている場合、プログラムはエラーを発生させます。

このプログラムの場合のみ、下限/上限を削除したいので、任意の数値を入れることができます。

私のコードは次のとおりです。

import easygui as eg
numMin=eg.integerbox(msg="What is the minimum value of the numbers?"
                   , title="Random Number Generator"
                   , default=0
                   , lowerbound=
                   , upperbound=
                   , image=None
                   , root=None
                   )

何を入れたらいいのかわからないので、まだ何も入力していません。任意の入力をいただければ幸いです。ありがとう!

4

1 に答える 1

2

他のすべてが失敗した場合は、ドキュメントを読んでみてください (つまり、ある場合は ;-)。

EasyGui には、別のダウンロードですが、このWeb ページeasygui-docs-0.97.zipに示されているファイルがあります。関数の API セクションには、次のように記載されています。integerbox()

easygui整数ボックスのドキュメントのスクリーンショット

したがって、あなたの質問に答えるには、いいえ、モジュールの境界チェックを無効にする方法はないようintegerbox()です。

更新:これは、境界チェックをまったく行わず、境界引数を受け入れないモジュールに追加できる新しい関数です(したがって、ストックバージョンとの厳密な呼び出し互換性はありません)。これを入れる場合は、モジュールのスクリプト ファイルの先頭近くに'integerbox2'あるリストの定義に、その名前 も必ず追加してください。__all__

easygui将来の更新がある場合に備えて、モジュールのスクリプト自体への変更を最小限に抑えたい場合は、代わりに新しい関数を別の.pyファイルに入れてimport integerbox2から、の上部近くにを追加することができますeasygui.py(さらに、それを に追加する別の行__all__)。

追加機能は次のとおりです。

#-------------------------------------------------------------------
# integerbox2 - like integerbox(), but without bounds checking.
#-------------------------------------------------------------------
def integerbox2(msg=""
               , title=" "
               , default=""
               , image=None
               , root=None):
    """
    Show a box in which a user can enter an integer.

    In addition to arguments for msg and title, this function accepts
    an integer argument for "default".

    The default argument may be None.

    When the user enters some text, the text is checked to verify that it
    can be converted to an integer, **no bounds checking is done**.

    If it can be, the integer (not the text) is returned.

    If it cannot, then an error msg is displayed, and the integerbox is
    redisplayed.

    If the user cancels the operation, None is returned.

    :param str msg: the msg to be displayed
    :param str title: the window title
    :param str default: The default value to return
    :param str image: Filename of image to display
    :param tk_widget root: Top-level Tk widget
    :return: the integer value entered by the user

    """
    if not msg:
        msg = "Enter an integer value"

    # Validate the arguments and convert to integers
    exception_string = ('integerbox "{0}" must be an integer.  '
                        'It is >{1}< of type {2}')
    if default:
        try:
            default=int(default)
        except ValueError:
            raise ValueError(exception_string.format('default', default,
                                                     type(default)))

    while 1:
        reply = enterbox(msg, title, str(default), image=image, root=root)
        if reply is None:
            return None
        try:
            reply = int(reply)
        except:
            msgbox('The value that you entered:\n\t"{}"\n'
                   'is not an integer.'.format(reply), "Error")
            continue
        # reply has passed validation check, it is an integer.
        return reply
于 2012-11-13T19:05:28.620 に答える