小编Tim*_*son的帖子

无模式对话框tkinter

我正在使用一个名为customDialog的类,它基于http://effbot.org/tkinterbook/tkinter-dialog-windows.htm .标准代码创建了一个子类Toplevel,并创建模态对话框.我正在尝试调整代码,以便它也可以创建无模式对话框.标准代码调用Toplevel构造函数,创建对话框,然后 self.wait_window(self)在最后执行,等待对话窗口被关闭.但我没有成功.

我天真的尝试是简单地跳过wait_window()(这是我的代码中的尝试在下面剪断).我尝试过其他一些东西,但对话框仍然是模态的,也就是说,我无法与应用程序的主窗口进行交互.是什么迫使它是模态的?通常,对话框包含小部件和几个按钮.

class Dialog(Toplevel):

    def __init__(self, parent, title = None,modal=True):
        Toplevel.__init__(self, parent)
        self.transient(parent)
        if title:
            self.title(title)
        self.parent = parent
        self.result = None
        body = Frame(self)
        #register validators
        self.validatePosInt = (body.register(self.OnValidatePosInt),
                '%d', '%i', '%P', '%s', '%S', '%v', '%V', '%W')

        self.initial_focus = self.body(body)   #this calls the body function which is overridden, and which draws the dialog
        body.grid()
        self.buttonbox()
        self.grab_set()
        if not self.initial_focus:
            self.initial_focus = self
        self.protocol("WM_DELETE_WINDOW", self.cancel)
        self.geometry("+%d+%d" % (parent.winfo_rootx()+50,
                                  parent.winfo_rooty()+50))
        self.initial_focus.focus_set() …
Run Code Online (Sandbox Code Playgroud)

python dialog tkinter non-modal

5
推荐指数
1
解决办法
2360
查看次数

flask-security:如何在蓝图/扩展应用程序模式中使用?

我想使用flask-security。我正在使用模板烧瓶应用程序,该应用程序创建扩展的全局对象,然后在创建应用程序时对其进行初始化。例如在extensions.py中,有如下代码:

from flask_bcrypt import Bcrypt
from flask_caching import Cache ...
from flask_security import Security ...
bcrypt = Bcrypt() ...
security = Security()
Run Code Online (Sandbox Code Playgroud)

然后在app.py调用register_extensions(app)中使用如下init_app(app)方法:

bcrypt.init_app(app)
security.init_app(app)
Run Code Online (Sandbox Code Playgroud)

实际上,烧瓶安全性是一种init_app()方法。但是文档说安全对象需要一个数据存储对象,该对象需要用户和角色模型。到目前为止,没有其他扩展程序需要将用户和角色模型导入app.py中是不合适的。

在使用“大型Flask应用程序”模型时,使用Flask-Security的最佳实践是什么?我认为文档没有帮助。当所有对象都定义在一个地方时,这是一种简单的情况。

flask flask-security

5
推荐指数
1
解决办法
1087
查看次数

如何使用 python zeep 进行重试处理?我正在使用请求重试会话,但未处理异常

我正在使用 zeep。我使用的服务不时产生超时错误,我想使用自动重试功能。

我正在尝试使用请求重试会话,但没有捕获超时异常,也没有尝试重试。

我设置了一个请求重试会话(如下),并设置了我的类的客户端属性(当前使用超时值导致错误):

 session = requests_retry_session()
 transport = Transport(session=session,timeout=20,operation_timeout=.001)
 self.client = Client(self.wsdl_url,transport=transport)
Run Code Online (Sandbox Code Playgroud)

...

def requests_retry_session(
        retries=10,
        backoff_factor=0.3,
        status_forcelist=(500, 502, 503, 504),
        session=None,
) -> requests.Session:
    session = session or requests.Session()
    retry = Retry(
        total=retries,
        read=retries,
        connect=retries,
        backoff_factor=backoff_factor,
        status_forcelist=status_forcelist,
    )
    adapter = HTTPAdapter(max_retries=retry)
    session.mount('http://', adapter)
    session.mount('https://', adapter)
    return session
Run Code Online (Sandbox Code Playgroud)

我收到 requests.exceptions.ReadTimeout (我假设这个错误与我在现实生活中遇到的错误相同,但是超时 20 秒,我的日志记录还不够好,尚无法确定)

会话未处理异常。

为什么不?

编辑:zeep 在某处发送 POST 请求,我在自己的调试中没有找到,但在 Requests 中激活调试日志显示了它。

默认情况下,重试不适用于 POST。

https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html

我设置了 method_whitelist=False 来改变它,现在我正在触发重试。

python python-requests zeep

4
推荐指数
1
解决办法
1682
查看次数

pydev importerror:没有名为thread的模块,pydev升级后调试不再有效

我的Eclipse 3.6/PyDev设置只是将pydev升级到1.6.0.2010071813并且调试不再有效.我的默认python解释器是3.1虽然我怀疑这很重要.在pydev的Eclipse升级之前,它运行得非常好.

python eclipse pydev

3
推荐指数
1
解决办法
1万
查看次数

python mechanize find_link找到最终的匹配链接

我在文本中有一个带有= = 1链接的页面,显示"显示费用".我可以找到第一个这样的链接

firstLink = br.find_link(text_regex=re.compile("Display charges"),nr=0)
Run Code Online (Sandbox Code Playgroud)

我希望能够找到最后的链接.我希望这会奏效

lastLink = br.find_link(text_regex=re.compile("Display charges"),nr=-1)
Run Code Online (Sandbox Code Playgroud)

但是在只有一个匹配链接的情况下,它就失败了.

请注意:Python和机械化初学者但已发现帮助(mechanize.Browser),这是一个重大突破:)

python mechanize

2
推荐指数
1
解决办法
7006
查看次数

在Windows 7上的pil png activestate ZLIB(PNG/ZIP)支持不可用

我正在尝试将一个python程序从OS X移植到Windows 7.该程序使用tkinter处理png,例如

self.logoImg = ImageTk.PhotoImage(Image.open('GrowthPathLogo.png'))
Run Code Online (Sandbox Code Playgroud)

代码失败,IOError:解码器zip不可用

我尝试用pypm安装pip.然后我尝试用pip构建它.在构建过程结束时,它报告不支持png/zlib

我在Windows上安装了python.org时遇到了同样的错误.

我被困住了,我不擅长构建C库.我也不知道pip是如何工作的.我安装了一个gnu zlib库,但它根本没有帮助.我安装了Visual C++ 2008 Express,至少可以正常工作,因为pip会成功编译.

python windows activestate activepython python-imaging-library

2
推荐指数
2
解决办法
3736
查看次数

VBA为什么我必须将类变量调暗为变量,而不是它的类型?

在Excel宏中,我有一个定义的函数,就像返回一个Recordset一样

Function GetCommissionDataRecordset(doctorCode As String) As ADODB.Recordset
    Set GetCommissionDataRecordset = New ADODB.Recordset
    .
    . ' setup the connection and SQL string...
    .
    GetCommissionDataRecordset.Open strSQL
end function
Run Code Online (Sandbox Code Playgroud)

我试图像这样调用函数

sub tester()
    'Dim oRecSet As ADODB.Recordset  ' this doesn't work, needs to be a variant
    Dim oRecSet As Variant
    Set oRecSet = GetCommissionDataRecordset("GC")
    'Copy Data to Excel'

    ActiveSheet.Range("a1").CopyFromRecordset (oRecSet)
end sub
Run Code Online (Sandbox Code Playgroud)

如果在tester我定义的子过程中oRecSet as ADODB.Recordset,我在执行时遇到运行时错误CopyFromRecordset.

当我定义oRecSet为a 时,错误消失了Variant.

运行时错误是430 Class does not support Automation …

excel vba excel-vba

2
推荐指数
1
解决办法
1682
查看次数

无法使用样式设置背景颜色ttk python os x

使用此代码片段,我希望标签的背景颜色为红色.def createWidgets(self):

    style = ttk.Style()
    style.configure("Red.TLabel", foreground="green", background="red")

    self.label1 = ttk.Label(textvariable=self.numberArray[0][0],style="Red.TLabel")
    self.label1.pack()
Run Code Online (Sandbox Code Playgroud)

我得到绿色前景色但我无法改变背景色.这是在OS X上.我正在使用ActiveState的tcl和python.Python 3.2和2.7也出现同样的问题

python macos operating-system tkinter ttk

1
推荐指数
1
解决办法
3327
查看次数

我想使用 Python 字符串格式化表达式将数字格式化为百分比,但它失败了

蟒蛇 2.7.3

>>> print '%2.2f' % 0.1
0.10
Run Code Online (Sandbox Code Playgroud)

我的文档说类型 % 应该与类型 f 相同,只是输入乘以 100。

>>> print '%2.2%' % 0.1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: not all arguments converted during string formatting
Run Code Online (Sandbox Code Playgroud)

python python-2.7

1
推荐指数
1
解决办法
4657
查看次数

postgresql:无法在单用户模式下获取 docker postgres 容器

我需要以单用户模式启动 postgresql 服务器,以便恢复超级用户角色。在本例中,它是 postgres10 的标准 docker 镜像

我猛击容器。作为用户 postgres 和 /usr/lib/postgresql/10/bin 我这样做:

./pg_ctl stop -D /var/lib/postgresql/data
Run Code Online (Sandbox Code Playgroud)

作为以单一模式启动之前的第一步。

我看到正在等待服务器关闭...

然后我就被甩回主人那里了。

我发现这与重启政策无关。

编辑:postgresql 服务器进程的 pid 1 因此容器在 postgresql 停止时退出。

postgresql docker

1
推荐指数
1
解决办法
927
查看次数