标签: wxpython

wxPython 动画 - 补间动画

我想知道是否可以在 wxPython 中使用补间动画。我曾尝试查看所有文档,但似乎无法找到对它的引用。我所追求的一个例子是让一个按钮从窗口底部飞到顶部。有这样的方法吗?

python animation wxpython tween

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

wxPython -- 如何在某些事件中更新 BitmapButton 的边框样式,例如单击

我正在尝试在创建按钮后添加/删除 BitmapButton 的边框。我还没有找到任何工作示例来更新 BitmapButton 的外观。说

self.btn = wx.BitmapButton(self.panel, wx.ID_ANY, bmp, pos=(...))
self.Bind(wx.EVT_BUTTON, self.OnClick, self.btn)
Run Code Online (Sandbox Code Playgroud)

然后在 OnClick

def OnClick(self):
    # what should be here to give / remove the border of the button being clicked
Run Code Online (Sandbox Code Playgroud)

谢谢

python wxpython border bitmap button

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

使用没有菜单项的加速器表

我有一个 wxpython 桌面应用程序,我使用的是 python 2.7 和 wxpython 2.8。

我知道如何将加速键表添加到菜单项,但我想在用户按下某个键组合而没有菜单项时触发一个事件。用户可以将焦点放在我的 UI 中的任何字段上,但是当他按下(例如)CTRL-L 时,应该会触发一个事件。这该怎么做 ?

谢谢你的帮助

python wxpython

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

按钮名称参数中&的含义是什么?

当我创建一个按钮时,wxpython我可以:

self.all = wx.Button(self, -1, _("&ALL"))
Run Code Online (Sandbox Code Playgroud)

或者

self.all = wx.Button(self, -1, _("ALL"))
Run Code Online (Sandbox Code Playgroud)

两者都生成一个名为的按钮 ALL

那么,&name参数中的the是什么意思呢?

ducomntation没有指定任何关于它的内容。

这里的问题是相似的,但不一样。那里的解决方案是设置焦点。虽然您可以为菜单设置焦点,但不能将焦点设置为按钮。

python wxpython

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

在 wxpython 中导入并显示一个 .txt 文件

我尝试导入一个 .txt 文件并将其值显示到 wxpython 面板中。

但首先我需要能够导入数据,而我在这一点上被卡住了。作为测试,我尝试了:

#!/usr/bin/env python
#.*. coding: utf-8 .*.

f = open('data.txt', "r")
lines = f.readlines()

for line in lines:
    words = line.split("-") 
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我没有收到错误,但在 shell 中什么也没有发生。感谢您的帮助!

python text wxpython

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

如何使用 cmd2 和 wxPython 创建非阻塞 GUI?

即使解释器和必须在主线程上运行,如何wxPythoncmd2解释器命令创建非阻塞GUI 窗口wx.App


我正在使用该cmd2模块在 Python 3.x 中创建命令行解释器。我的解释器中的一个命令将允许我创建一个“非阻塞” wxPythonGUI 窗口,该窗口带有一个在单独线程中运行的倒数计时器。它需要与主解释器线程分开运行,否则它将阻止在计时器运行时输入其他命令。

当我尝试使用该wxTimer对象来允许我的 GUI 更新其进度条并检查剩余时间时,我收到以下错误:

wx._core.wxAssertionError: C++ assertion "wxThread::IsMain()" failed at ..\..\src\common\timerimpl.cpp(60) in wxTimerImpl::Start(): timer can only be started from the main thread
Run Code Online (Sandbox Code Playgroud)

任何启动计时器的尝试都会破坏代码。例如,下面的简单代码不起作用:

import wx
import threading
import cmd2

class TimerFrame(wx.Frame):
    def __init__(self, time):
        super().__init__(None, title=str(time), size=(300, 300))
        self.InitUI()

    def InitUI(self):
        self.timer = wx.Timer(self, 1)
        self.timer.Start(100)
        self.Bind(wx.EVT_TIMER, self.OnTimer, id=1)
        self.Show()

    def OnTimer(self, event):
        print("Updating")

class Interpreter(cmd2.Cmd):
    def __init__(self):
        super().__init__()
        self.app = wx.App() …
Run Code Online (Sandbox Code Playgroud)

python multithreading wxwidgets wxpython python-3.x

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

动态改变wx.TextCtrl的大小

我有 wx.TextCtrl 的问题。我只想设置控制框的大小,但我想动态地进行。这无论出于任何原因都不起作用。

这里有我的源代码。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import wx

class Test(wx.Frame):

def __init__(self, parent):
    super().__init__(parent)

    # Panel
    self.panel = wx.Panel(self)

    # Boxes
    self.numbers = wx.StaticBox(self.panel, wx.ID_ANY, "Numbers")

    # Elements
    self.stN1 = wx.StaticText(self.numbers, wx.ID_ANY, "Number 1:")
    self.tcN1 = wx.TextCtrl(self.numbers, wx.ID_ANY, style=wx.TE_CENTER)
    self.tcN1.SetSize(wx.Size(36, 20))

    self.stN2 = wx.StaticText(self.numbers, wx.ID_ANY, "Number 2:")
    self.tcN2 = wx.TextCtrl(self.numbers, wx.ID_ANY, size=wx.Size(36, 20), style=wx.TE_CENTER)

    # Sizers  
    self.szTop = wx.BoxSizer(wx.VERTICAL)
    self.szNumbers = wx.StaticBoxSizer(self.numbers, wx.VERTICAL)
    self.szN1 = wx.BoxSizer(wx.HORIZONTAL)
    self.szN2 = wx.BoxSizer(wx.HORIZONTAL)

    self.szN1.Add(self.stN1, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) …
Run Code Online (Sandbox Code Playgroud)

python wxpython resize textctrl wx.textctrl

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

在小部件 WxPython 之间添加空间

这是我的代码:

class TabTwo(wx.Panel):
    def __init__(self, parent):
        wx.Panel.__init__(self, parent)
        self.resetButton = wx.Button(self, label="Reset")
        self.contactButton = wx.Button(self, label="Contact")
        self.copyrightButton = wx.Button(self, label="Copyright")

        v_sizer = wx.BoxSizer(wx.VERTICAL)
        h_sizer = wx.BoxSizer(wx.HORIZONTAL)

        v_sizer.Add(self.resetButton, 0, wx.EXPAND, 30)
        v_sizer.Add(self.contactButton, 0, wx.EXPAND, 30)
        v_sizer.Add(self.copyrightButton, 0, wx.EXPAND, 30)

        self.SetSizer(v_sizer)
Run Code Online (Sandbox Code Playgroud)

如何在按钮 ( Reset,ContactCopyright)之间添加一些空间,使其看起来不像是被压在一起的。
按钮的当前布局

python wxwidgets wxpython python-3.x

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

如何修复 Windows 上 WxPython 控件中的模糊文本?

我们有一个使用 WxPython 4 编写的基于 Python 的应用程序,我们为多个操作系统(包括 Windows)构建了该应用程序。在 Windows 10 中,至少在我的环境中(在高分辨率显示器上的 VM 内),界面中的文本元素是模糊的:

在此处输入图片说明

我可以通过在应用程序上设置 Windows DPI 缩放覆盖来稍微改善这种情况。这是间接的和次优的,似乎应该有一种方法可以更直接地从 WxPython 中做到这一点。但是,我还没有找到一种方法来做到这一点。

有什么方法可以从 WxPython 设置 DPI 缩放比例,或者直接从应用程序中修复 WxPython 4 中 Windows 上的模糊文本?

windows wxpython dpi python-3.x

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

PostgreSQL DROP TABLE 查询冻结

我正在编写代码以在 Anaconda 的 Spyder 环境中用 Python 创建 GUI。在这段代码中,我使用了 PostgreSQL 数据库,因此我使用了 psycopg2 数据库适配器,以便我可以直接从 GUI 进行交互。

代码太长,无法在此处发布,因为它超过 3000 行,但总而言之,我与数据库交互没有问题,除非我尝试删除表。

当我这样做时,GUI 框架变得无响应,drop table查询不会删除预期的表,也不会抛出任何错误或任何其他类型的内容。

在我的代码中,所有导致表被删除的操作都通过函数 ( DeleteTable)进行处理。当我调用这个函数时,没有问题,因为我之前插入了几个打印语句,确认一切正常。当我用cur.execute(sql)代码行执行语句时会出现问题。

有人能弄清楚为什么我的桌子不会掉吗?

def DeleteTable(table_name):

    conn=psycopg2.connect("host='localhost' dbname='trial2' user='postgres'   password='postgres'")
    cur=conn.cursor()
    sql="""DROP TABLE """+table_name+""";"""
    cur.execute(sql)
    conn.commit()
Run Code Online (Sandbox Code Playgroud)

python postgresql wxpython psycopg2

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