我已经构建了Kivy GUI,它可以使用pyttsx3进行语音输出,但是当我运行pyttsx3时,它会阻塞主线程,从而导致图形用户界面冻结。
我如何在另一个线程上运行pyttsx3,并从主线程听到输出,或者是否有一种方法可以在不阻塞主线程的情况下运行pyttsx3,并防止它冻结我的Kivy GUI?
这是我创建的示例代码,当您单击按钮时,它应该会打印文本框中的文本,但它会导致图形用户界面在pyttsx3运行时冻结:
import pyttsx3
from kivy.uix.textinput import TextInput
from kivy.uix.floatlayout import F
我正在开发一个在主菜单上需要TreeView的应用程序。我想在我的TreeView中的一个按钮上添加一个节点。当我单击按钮向treeview添加一个节点时,我会得到一个错误。(我正在尝试发现TreeView小部件,但即使在文档中也无法实现)
gui_test.py:
import kivy
kivy.require('1.10.0')
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import Screen, ScreenManager
class UI(
当我试图向MDList添加许多小部件时,应用程序会结冰。我可以在我添加的每个小部件之后更新gui吗?可以在不冻结的情况下添加小部件吗?
from kivy.lang import Builder
from kivy.properties import ObjectProperty
from kivymd.app import MDApp
from kivymd.uix import Screen
from kivymd.uix.button import MDRaisedButton
from kivymd.uix.list import OneLineIconListItem
kv =
我有tgis问题,我的tkinter窗口中有一个按钮,它调用python函数,例如:
While True :
n=n+1
print n #to check if the function is really called upon button press
当我签入python控制台时,一切都很正常,但是在窗口中,按钮冻结了,窗口崩溃了.我的问题是:是否有一种方法可以调用这样的函数而不崩溃?这不是我第一次遇到这样的问题,我在使用kivy时遇到了同样的问题,似乎不能在GUI程序上完成吗?
import kivy
from kivy.app import App
from kivy.uix.widget import Widget
#MADE A CLASS FOR MAKING THE GUI
class Main_GUI(App):
pass
def ind(self):
print("hi")
kv = Main_GUI()
kv.run()
上面是我命名为sample.py的Python代码。
下面是Main_GUI.kv
BoxLayout:
orientation: "vertical"
Button:
我正在尝试制作一个模拟简单生态系统的kivy应用程序,它是一种交互式地图,可以通过用户拖动来缩放和定位。我实现这一目标的第一种方法是使用Kivy分散部件,它似乎满足了这些需求。下面是我的代码(为了保持简单,只需带按钮的gui,右边有红色大矩形的地图):
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import ObjectProperty
from kivy.graphics import Rectangle, Color
class GUI(BoxLayout)
我正在使用kivy制作一个GUI。它从url获取“静态地图映像”(png)和“反向地理编码字符串”(Json)。为此,我使用了kivy的内置异步urlrequest库。我的程序从.csv文件中获取(纬度、经度),并在screen.Also上显示图片和地址细节--一些内部操作是基于json数据(Dict)执行的(例如:地址中有多少个单词.)。有一个' next ‘按钮,按下,下一步(lat,long)被选中和投影。现在,我添加了一个'automate‘按钮,它将遍历(lat,long),并在手动按下'next’时调用完全相同的函数,但是在执行时,屏幕冻结,有时没有响应,如
我再次尝试来自的kivy gps示例。但当我按下开始按钮并将手机置于睡眠模式(屏幕关闭)时,问题就出现了,有时我回到屏幕和应用程序时,只有我能看到冻结的gui,因为在待机模式下无法更新标签。我该如何克服这个问题呢?我想要更新标签,即使我的手机处于睡眠模式。
from kivy.lang import Builder
from plyer import gps
from kivy.app import App
from kivy.properties import StringProperty
from kivy.clock import Clock
kv = '''
我的客户端应用程序使用一个Kivy GUI (Kivy有自己的事件循环),并使用WebSocket协议与Tornado连接到服务器(旋风也有一个事件循环)。这就是为什么连接部分是异步的。
我希望用户在旋风式客户端运行无限异步循环侦听服务器消息时与UI进行交互。
下面是一些示例代码:
client_test.py
from tornado.ioloop import IOLoop
from tornado.websocket import websocket_connect
class RequestSender:
url = 'server url here (no sche
为了让我的生活更轻松一些,我正在创建一个仪表板,我可以在这个仪表板上为多个客户操作东西。每个客户端都有一个文件夹,其中包含每个客户端的配置文件,以动态构建页面的其余部分。
现在我被困在第一步,就是为我拥有的每一个客户端创建一个按钮。
File "gui.py", line 25, in on_enter
self.ids.clients.add_widget(clientbutton)
File "kivy/properties.pyx", line 863, in kivy.properties.ObservableDict.__geta
我在kivy中创建了一个日历应用,我想知道我如何才能添加一个更新时钟?我可以使用datetime python函数,但当我将它加载到我的应用程序中时,它显示了一个冻结的时间,没有任何移动。有什么建议吗? from datetime import datetime, date, time, timedelta
from kivy.app import App
from kivy.clock import Clock (已解决)
我想使用kivy为一个老python项目创建一个gui,我希望在旧的项目类和kivy小部件之间保持分离,但是我不知道如何在不将其更改为Kivy属性的情况下从类属性中显示信息。
class Person(object):
""" Person information """
def __init__(self, name, last_name, age):
self.name = name
self.last_name = last_name
self.age = age
当我读到Ki
我想做图形用户界面,它允许我在底部输入文本,也允许我在屏幕的其余部分绘图,.I能够使用BoxLayout制作窗口底部的文本框和按钮,但我无法使用剩余空间进行绘图。下面是我的代码的输出:The output 下面是我的代码 import sys
import os
import kivy
kivy.require("1.10.0")
from kivy.app import App
from kivy.core.window import Window
from kivy.uix.textinput import TextInput
from kivy.uix.button
我不知道为什么,但是当我想改变我的popup - want (我用python创建的,而不是kivy)时,我改变了整个屏幕的背景,除了我实际的弹出窗口。我的代码看起来像这样(分解了很多): from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.popup import Popup
from kivy.uix.label import Label
from kivy.core.window import Window
class BoxL(BoxLayout):
def choo