Kivy-Python 正在多处理中打开一个白屏

Kivy-Python working in multi processing opening one more white screen

    import file...
    from mobus import modbus
    .....

class MainWindow(Screen):
    def __init__(self, **kwargs):
        super(MainWindow, self).__init__(**kwargs)

class SecondWindow(Screen):
    pass

class ThirdWindow(Screen):
    pass

class WindowManager(ScreenManager):
    pass

class mainApp(MDApp):
    def build(self):
        iconfonts.register('default_font', 'iconfonts\gar.ttf',
                           join(dirname(__file__), 'iconfonts\gar.fontd'))

        Config.set('graphics', 'width', '1080')
        Config.set('graphics', 'height', '720')
        return Builder.load_file("my.kv")


def de():
    mainApp().run()

def modbusStart():
    modbus.connect()

if __name__ == "__main__":

    a = Process(target=de)
    b = Process(target=modbusStart)
    a.start()
    b.start()

Screen looks like 当我运行此代码时,再打开一个 window 是白色的。我不知道为什么会打开,我该如何解决? 我认为这是关于屏幕管理器和 2.process。我尝试了所有组合来修复它,但我不能

UbuntuWindows 10 上尝试类似您的代码后,我发现了一些奇怪的行为。首先,额外的 Window 似乎只出现在 Windows 上,并且只有当您导入 MDApp 时才会出现。即使您只是导入 MDApp,而不实际使用它,额外的 Window 行为也会发生。

我认为您发现了一个错误,您应该向 kivyMD 开发人员报告。

我能找到停止额外 Window 行为的唯一方法是不使用(甚至不导入)MDApp

Main.py

import modbus
from multiprocessing import Process, Queue, freeze_support
import kvy

def kivy():
    kvy.de()

def modbusStart():
    modbus.connect()

if __name__ == "__main__":
    a = Process(target=kivy)
    b = Process(target=modbusStart)
    a.start()
    b.start()

点头

from kivy.uix.screenmanager import ScreenManager,Screen,FadeTransition
from kivy.config import Config
from kivy.lang import Builder
from kivy.core.text import LabelBase
from kivymd.app import MDApp
from kivy.uix.image import Image
from kivy.uix.button import ButtonBehavior
from iconfonts import iconfonts
from os.path import join, dirname


class ImageButton(ButtonBehavior,Image):
    pass

class MainWindow(Screen):
    pass

class SecondWindow(Screen):
    pass

class ThirdWindow(Screen):
    pass

class WindowManager(ScreenManager):
    pass

class mainApp(MDApp):
    def build(self):
        iconfonts.register('default_font', 'iconfonts\gar.ttf',
                           join(dirname(__file__), 'iconfonts\gar.fontd'))
        LabelBase.register(name="prototype", fn_regular="font/Prototype.ttf")

        Config.set('graphics', 'width', '1080')
        Config.set('graphics', 'height', '720')
        return Builder.load_file("my.kv")

def de():
    mainApp().run()

Modbus

from pymodbus.client.sync import ModbusTcpClient

def connect():
    client = ModbusTcpClient("localhost")
    client.connect()
    if client.connect():
        print("Connection Successful")
    else:
        print("Conenction Failed")