當所有其他都失敗時,試着閱讀文檔(也就是說,如果有的話;-)。
隨着EasyGui有,雖然它是一個單獨的下載,easygui-docs-0.97.zip
文件,顯示在這webpage。下面是它的integerbox()
功能的API節說:
因此,要回答你的問題,沒有,似乎沒有被禁用的邊界檢查模塊的方式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
我不知道如何幫助... 只有「默認」參數可以是無;沒有別的。我已經嘗試將None作爲lowerbound和upperbound參數,並且我得到一個錯誤,因爲它是非整數值。 –
RTFM ...表示'default','lowerbound'和'upperbound'參數必須是整數。你意識到'None'不是一個整數,對吧?另外,如果您查看源代碼,您會發現函數定義中的所有參數確實具有記錄的默認值。 – martineau
在Python中,整數實際上沒有任何限制,所以如果你真的想要絕對沒有限制檢查修改提供的源代碼(或者添加一個從所提供的函數派生的新函數),那就做你想要的 - 在這個原因中是檢查參數是否爲'None'並跳過任何邊界測試。 – martineau