我想知道是否可以在 wxPython 中使用补间动画。我曾尝试查看所有文档,但似乎无法找到对它的引用。我所追求的一个例子是让一个按钮从窗口底部飞到顶部。有这样的方法吗?
我正在尝试在创建按钮后添加/删除 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)
谢谢
我有一个 wxpython 桌面应用程序,我使用的是 python 2.7 和 wxpython 2.8。
我知道如何将加速键表添加到菜单项,但我想在用户按下某个键组合而没有菜单项时触发一个事件。用户可以将焦点放在我的 UI 中的任何字段上,但是当他按下(例如)CTRL-L 时,应该会触发一个事件。这该怎么做 ?
谢谢你的帮助
当我创建一个按钮时,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没有指定任何关于它的内容。
这里的问题是相似的,但不一样。那里的解决方案是设置焦点。虽然您可以为菜单设置焦点,但不能将焦点设置为按钮。
我尝试导入一个 .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 中什么也没有发生。感谢您的帮助!
wxPython从cmd2解释器命令创建非阻塞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) 我有 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) 这是我的代码:
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)
我们有一个使用 WxPython 4 编写的基于 Python 的应用程序,我们为多个操作系统(包括 Windows)构建了该应用程序。在 Windows 10 中,至少在我的环境中(在高分辨率显示器上的 VM 内),界面中的文本元素是模糊的:
我可以通过在应用程序上设置 Windows DPI 缩放覆盖来稍微改善这种情况。这是间接的和次优的,似乎应该有一种方法可以更直接地从 WxPython 中做到这一点。但是,我还没有找到一种方法来做到这一点。
有什么方法可以从 WxPython 设置 DPI 缩放比例,或者直接从应用程序中修复 WxPython 4 中 Windows 上的模糊文本?
我正在编写代码以在 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)