Python Forum
I wanted to make a kivy tutorial, but I failed in step one.
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
I wanted to make a kivy tutorial, but I failed in step one.
#1
I'm new to python, but am reasonably in c I wanted to do this kivy tutorial "https://www.youtube.com/watch?v=l8Imtec4ReQ&t=1154s" and followed it to the letter. I installed kivy with pip and listed the packages and all was well.
Then I wrote four lines of code in main.py and got a black window which signaled that all was ok, but I did get some warnings. Then I added a second file thelab. kv, and tried to add a button. And again, I got a black window, but no button.

I'm working on a computer in Linux mint 21 with pycharm and have the following files:
Main. py:
from kivy.app import App
from kivy.uix.widget import Widget


class MainWidget(Widget):
    pass


class TheLabApp(App):
    pass


TheLabApp().run()
The Lab. kv
<MainWidget>:
    Button:
        text: "Hello"
and the messages are:
Error:
home/bert/PycharmProjects/kivi-thelab/venv/bin/python /home/bert/PycharmProjects/kivi-thelab/main.py [INFO ] [Logger ] Record log in /home/bert/.kivy/logs/kivy_22-08-08_0.txt [INFO ] [Kivy ] v2.1.0 [INFO ] [Kivy ] Installed at "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/__init__.py" [INFO ] [Python ] v3.9.9 (main, Nov 10 2011, 15:00:00) [GCC 11.3.0] [INFO ] [Python ] Interpreter at "/home/bert/PycharmProjects/kivi-thelab/venv/bin/python" [INFO ] [Logger ] Purge log fired. Processing... [INFO ] [Logger ] Purge finished! [INFO ] [Factory ] 189 symbols loaded [INFO ] [Image ] Providers: img_tex, img_dds, img_sdl2 (img_pil, img_ffpyplayer ignored) --- Logging error --- Traceback (most recent call last): File "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/input/providers/__init__.py", line 41, in <module> import kivy.input.providers.mtdev File "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/input/providers/mtdev.py", line 94, in <module> from kivy.lib.mtdev import Device, \ File "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/lib/mtdev.py", line 30, in <module> libmtdev = cdll.LoadLibrary('libmtdev.so.1') File "/usr/lib/python3.9/ctypes/__init__.py", line 452, in LoadLibrary return self._dlltype(name) File "/usr/lib/python3.9/ctypes/__init__.py", line 374, in __init__ self._handle = _dlopen(self._name, mode) OSError: libmtdev.so.1: cannot open shared object file: No such file or directory During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.9/logging/__init__.py", line 1083, in emit msg = self.format(record) File "/usr/lib/python3.9/logging/__init__.py", line 927, in format return fmt.format(record) File "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/logger.py", line 291, in format record = copy.deepcopy(record) File "/usr/lib/python3.9/copy.py", line 172, in deepcopy y = _reconstruct(x, memo, *rv) File "/usr/lib/python3.9/copy.py", line 270, in _reconstruct state = deepcopy(state, memo) File "/usr/lib/python3.9/copy.py", line 146, in deepcopy y = copier(x, memo) File "/usr/lib/python3.9/copy.py", line 230, in _deepcopy_dict y[deepcopy(key, memo)] = deepcopy(value, memo) File "/usr/lib/python3.9/copy.py", line 146, in deepcopy y = copier(x, memo) File "/usr/lib/python3.9/copy.py", line 210, in _deepcopy_tuple y = [deepcopy(a, memo) for a in x] File "/usr/lib/python3.9/copy.py", line 210, in <listcomp> y = [deepcopy(a, memo) for a in x] File "/usr/lib/python3.9/copy.py", line 161, in deepcopy rv = reductor(4) TypeError: cannot pickle 'traceback' object Call stack: File "/home/bert/PycharmProjects/kivi-thelab/main.py", line 13, in <module> TheLabApp().run() File "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/app.py", line 954, in run self._run_prepare() File "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/app.py", line 924, in _run_prepare root = self.build() File "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/app.py", line 597, in build return Widget() File "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/uix/widget.py", line 341, in __init__ EventLoop.ensure_window() File "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/base.py", line 136, in ensure_window import kivy.core.window # NOQA File "<frozen importlib._bootstrap>", line 1007, in _find_and_load File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 680, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 850, in exec_module File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed File "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/core/window/__init__.py", line 2460, in <module> Window = core_select_lib('window', window_impl, True) File "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/core/__init__.py", line 59, in core_select_lib mod = importlib.__import__(name='{2}.{0}.{1}'.format( File "<frozen importlib._bootstrap>", line 1109, in __import__ File "<frozen importlib._bootstrap>", line 1030, in _gcd_import File "<frozen importlib._bootstrap>", line 1007, in _find_and_load File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 680, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 850, in exec_module File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed File "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/core/window/window_sdl2.py", line 34, in <module> from kivy.input.provider import MotionEventProvider File "<frozen importlib._bootstrap>", line 1007, in _find_and_load File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed File "<frozen importlib._bootstrap>", line 1007, in _find_and_load File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 680, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 850, in exec_module File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed File "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/input/__init__.py", line 30, in <module> from kivy.input.postproc import kivy_postproc_modules File "<frozen importlib._bootstrap>", line 1007, in _find_and_load File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 680, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 850, in exec_module File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed File "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/input/postproc/__init__.py", line 15, in <module> from kivy.input.postproc.calibration import InputPostprocCalibration File "<frozen importlib._bootstrap>", line 1007, in _find_and_load File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 680, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 850, in exec_module File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed File "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/input/postproc/calibration.py", line 51, in <module> from kivy.input import providers File "<frozen importlib._bootstrap>", line 1058, in _handle_fromlist File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed File "<frozen importlib._bootstrap>", line 1007, in _find_and_load File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 680, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 850, in exec_module File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed File "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/input/providers/__init__.py", line 44, in <module> Logger.exception(err) Message: 'Input: MTDev is not supported by your version of linux' Arguments: () [INFO ] [Window ] Provider: sdl2 [INFO ] [GL ] Using the "OpenGL" graphics system [INFO ] [GL ] Backend used <sdl2> [INFO ] [GL ] OpenGL version <b'4.6 (Compatibility Profile) Mesa 21.3.8 (git-813ee839be)'> [INFO ] [GL ] OpenGL vendor <b'Intel'> [INFO ] [GL ] OpenGL renderer <b'Mesa Intel(R) UHD Graphics 620 (WHL GT2)'> [INFO ] [GL ] OpenGL parsed version: 4, 6 [INFO ] [GL ] Shading version <b'4.60'> [INFO ] [GL ] Texture max size <16384> [INFO ] [GL ] Texture max units <32> [INFO ] [Window ] auto add sdl2 input provider [INFO ] [Window ] virtual keyboard not allowed, single mode, not docked [INFO ] [ProbeSysfs ] device match: /dev/input/event8 [INFO ] [ProbeSysfs ] Unable to find provider mtdev [INFO ] [ProbeSysfs ] fallback on hidinput [INFO ] [HIDInput ] Read event from </dev/input/event8> [INFO ] [ProbeSysfs ] device match: /dev/input/event10 [INFO ] [ProbeSysfs ] Unable to find provider mtdev [INFO ] [ProbeSysfs ] fallback on hidinput [INFO ] [HIDInput ] Read event from </dev/input/event10> [INFO ] [Base ] Start application main loop Exception in thread HIDInputMotionEventProvider: Exception in thread HIDInputMotionEventProviderException in thread HIDInputMotionEventProvider: Traceback (most recent call last): Traceback (most recent call last): File "/usr/lib/python3.9/threading.py", line 973, in _bootstrap_inner File "/usr/lib/python3.9/threading.py", line 973, in _bootstrap_inner self.run() File "/usr/lib/python3.9/threading.py", line 910, in run self.run() File "/usr/lib/python3.9/threading.py", line 910, in run self._target(*self._args, **self._kwargs) File "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/input/providers/hidinput.py", line 663, in _thread_run self._target(*self._args, **self._kwargs) self._target(*self._args, **self._kwargs) fd = open(input_fn, 'rb') File "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/input/providers/hidinput.py", line 663, in _thread_run PermissionError: [Errno 13] Permission denied: '/dev/input/event8' fd = open(input_fn, 'rb') PermissionError: [Errno 13] Permission denied: '/dev/input/event10' [INFO ] [Base ] Leaving application in progress... Process finished with exit code 0
and I hope that someone can help me overcome this initial obstacle so that I can go further.
regards bert
Small update, I did a chmod +u on: '/dev/input/event8' and '/dev/input/event10'
And got no PermissionErrors anymore, but still no button
Reply
#2
Run sudo apt-get install libmtdev-dev and try again.
This library is for multitouch.

Your user should also be in group input to have the permission to access /dev/input/event*.
Maybe this is a fallback to a different backend (evdev) to gain access, if libmtdev were missing.

To check the groups:
cnc@cnc:~ $ id
uid=1001(cnc) gid=1001(cnc) Gruppen=1001(cnc),4(adm),20(dialout),24(cdrom),27(sudo),29(audio),44(video),46(plugdev),60(games),100(users),105(input),107(render),109(netdev),117(lpadmin),997(gpio),998(i2c),999(spi)
Adding the user to group input:
usermod -a -G input username
https://linux.die.net/man/8/usermod
Almost dead, but too lazy to die: https://sourceserver.info
All humans together. We don't need politicians!
Reply
#3
Thank you for replying dead eye.
I did what you asked, installed libmtdev-dev and made me part of the input group. But this didn't solve my problem, I still got a black window without a button.
The message at this moment are:
Error:
/home/bert/PycharmProjects/kivi-thelab/venv/bin/python /home/bert/PycharmProjects/kivi-thelab/main.py [INFO ] [Logger ] Record log in /home/bert/.kivy/logs/kivy_22-08-08_8.txt [INFO ] [Kivy ] v2.1.0 [INFO ] [Kivy ] Installed at "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/__init__.py" [INFO ] [Python ] v3.9.9 (main, Nov 10 2011, 15:00:00) [GCC 11.3.0] [INFO ] [Python ] Interpreter at "/home/bert/PycharmProjects/kivi-thelab/venv/bin/python" [INFO ] [Logger ] Purge log fired. Processing... [INFO ] [Logger ] Purge finished! [INFO ] [Factory ] 189 symbols loaded [INFO ] [Image ] Providers: img_tex, img_dds, img_sdl2 (img_pil, img_ffpyplayer ignored) --- Logging error --- Traceback (most recent call last): File "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/input/providers/__init__.py", line 41, in <module> import kivy.input.providers.mtdev File "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/input/providers/mtdev.py", line 94, in <module> from kivy.lib.mtdev import Device, \ File "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/lib/mtdev.py", line 30, in <module> libmtdev = cdll.LoadLibrary('libmtdev.so.1') File "/usr/lib/python3.9/ctypes/__init__.py", line 452, in LoadLibrary return self._dlltype(name) File "/usr/lib/python3.9/ctypes/__init__.py", line 374, in __init__ self._handle = _dlopen(self._name, mode) OSError: libmtdev.so.1: cannot open shared object file: No such file or directory During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.9/logging/__init__.py", line 1083, in emit msg = self.format(record) File "/usr/lib/python3.9/logging/__init__.py", line 927, in format return fmt.format(record) File "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/logger.py", line 291, in format record = copy.deepcopy(record) File "/usr/lib/python3.9/copy.py", line 172, in deepcopy y = _reconstruct(x, memo, *rv) File "/usr/lib/python3.9/copy.py", line 270, in _reconstruct state = deepcopy(state, memo) File "/usr/lib/python3.9/copy.py", line 146, in deepcopy y = copier(x, memo) File "/usr/lib/python3.9/copy.py", line 230, in _deepcopy_dict y[deepcopy(key, memo)] = deepcopy(value, memo) File "/usr/lib/python3.9/copy.py", line 146, in deepcopy y = copier(x, memo) File "/usr/lib/python3.9/copy.py", line 210, in _deepcopy_tuple y = [deepcopy(a, memo) for a in x] File "/usr/lib/python3.9/copy.py", line 210, in <listcomp> y = [deepcopy(a, memo) for a in x] File "/usr/lib/python3.9/copy.py", line 161, in deepcopy rv = reductor(4) TypeError: cannot pickle 'traceback' object Call stack: File "/home/bert/PycharmProjects/kivi-thelab/main.py", line 13, in <module> TheLabApp().run() File "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/app.py", line 954, in run self._run_prepare() File "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/app.py", line 924, in _run_prepare root = self.build() File "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/app.py", line 597, in build return Widget() File "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/uix/widget.py", line 341, in __init__ EventLoop.ensure_window() File "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/base.py", line 136, in ensure_window import kivy.core.window # NOQA File "<frozen importlib._bootstrap>", line 1007, in _find_and_load File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 680, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 850, in exec_module File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed File "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/core/window/__init__.py", line 2460, in <module> Window = core_select_lib('window', window_impl, True) File "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/core/__init__.py", line 59, in core_select_lib mod = importlib.__import__(name='{2}.{0}.{1}'.format( File "<frozen importlib._bootstrap>", line 1109, in __import__ File "<frozen importlib._bootstrap>", line 1030, in _gcd_import File "<frozen importlib._bootstrap>", line 1007, in _find_and_load File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 680, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 850, in exec_module File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed File "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/core/window/window_sdl2.py", line 34, in <module> from kivy.input.provider import MotionEventProvider File "<frozen importlib._bootstrap>", line 1007, in _find_and_load File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed File "<frozen importlib._bootstrap>", line 1007, in _find_and_load File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 680, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 850, in exec_module File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed File "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/input/__init__.py", line 30, in <module> from kivy.input.postproc import kivy_postproc_modules File "<frozen importlib._bootstrap>", line 1007, in _find_and_load File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 680, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 850, in exec_module File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed File "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/input/postproc/__init__.py", line 15, in <module> from kivy.input.postproc.calibration import InputPostprocCalibration File "<frozen importlib._bootstrap>", line 1007, in _find_and_load File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 680, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 850, in exec_module File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed File "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/input/postproc/calibration.py", line 51, in <module> from kivy.input import providers File "<frozen importlib._bootstrap>", line 1058, in _handle_fromlist File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed File "<frozen importlib._bootstrap>", line 1007, in _find_and_load File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 680, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 850, in exec_module File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed File "/home/bert/PycharmProjects/kivi-thelab/venv/lib/python3.9/site-packages/kivy/input/providers/__init__.py", line 44, in <module> Logger.exception(err) Message: 'Input: MTDev is not supported by your version of linux' Arguments: () [INFO ] [Window ] Provider: sdl2 [INFO ] [GL ] Using the "OpenGL" graphics system [INFO ] [GL ] Backend used <sdl2> [INFO ] [GL ] OpenGL version <b'4.6 (Compatibility Profile) Mesa 21.3.8 (git-813ee839be)'> [INFO ] [GL ] OpenGL vendor <b'Intel'> [INFO ] [GL ] OpenGL renderer <b'Mesa Intel(R) UHD Graphics 620 (WHL GT2)'> [INFO ] [GL ] OpenGL parsed version: 4, 6 [INFO ] [GL ] Shading version <b'4.60'> [INFO ] [GL ] Texture max size <16384> [INFO ] [GL ] Texture max units <32> [INFO ] [Window ] auto add sdl2 input provider [INFO ] [Window ] virtual keyboard not allowed, single mode, not docked [INFO ] [ProbeSysfs ] device match: /dev/input/event8 [INFO ] [ProbeSysfs ] Unable to find provider mtdev [INFO ] [ProbeSysfs ] fallback on hidinput [INFO ] [HIDInput ] Read event from </dev/input/event8> [INFO ] [ProbeSysfs ] device match: /dev/input/event10 [INFO ] [ProbeSysfs ] Unable to find provider mtdev [INFO ] [ProbeSysfs ] fallback on hidinput [INFO ] [HIDInput ] Read event from </dev/input/event10> [INFO ] [Base ] Start application main loop [INFO ] [HIDMotionEvent] using <SYNA3081:00 06CB:826F Touchpad > [INFO ] [HIDMotionEvent] <SYNA3081:00 06CB:826F Touchpad > range ABS X position is 0 - 1332 [INFO ] [HIDMotionEvent] <SYNA3081:00 06CB:826F Touchpad > range ABS Y position is 0 - 828 [INFO ] [HIDMotionEvent] using <SynPS/2 Synaptics TouchPad > [INFO ] [HIDMotionEvent] <SYNA3081:00 06CB:826F Touchpad > range position X is 0 - 1332 [INFO ] [HIDMotionEvent] <SynPS/2 Synaptics TouchPad > range ABS X position is 1294 - 5646 [INFO ] [HIDMotionEvent] <SYNA3081:00 06CB:826F Touchpad > range position Y is 0 - 828 [INFO ] [HIDMotionEvent] <SynPS/2 Synaptics TouchPad > range ABS Y position is 1178 - 4676 [INFO ] [HIDMotionEvent] <SynPS/2 Synaptics TouchPad > range ABS pressure is 0 - 255 [INFO ] [HIDMotionEvent] <SynPS/2 Synaptics TouchPad > range position X is 1294 - 5646 [INFO ] [HIDMotionEvent] <SynPS/2 Synaptics TouchPad > range position Y is 1178 - 4676 [INFO ] [HIDMotionEvent] <SynPS/2 Synaptics TouchPad > range pressure is 0 - 255 [INFO ] [Base ] Leaving application in progress... Process finished with exit code 0
Beside this I was wondering, main.py and The Lab.kv are in the same folder, but there is no TheLab.kv mentioned in the main.py, don't I need to tell main.py where it can find stuff, (In c: #include "The Lab.kv")
Regards Bert
Reply
#4
Major update.
Went online and looked around me, found somewhere that running pycharm in a flatpack might give trouble, so I uninstalled pycharm and installed it again with a snap.
No more error messages, yet no button.
So I looked at another tutorial, nl. https://www.youtube.com/watch?v=YDp73WjNISc&t=88s in which all the widgets were placed in the main.py and a button appeared yeah! (But the callback function for the button didn't work (o glorious programming!))
I still want to do that first tutorial, so I have to figure out what I dit rong with that.
regards bert
Reply
#5
Please show your code.
Did you bind the button?
Reply
#6
You Kivy file has the class of:
Quote:<MainWidget>:
Your App class TheLabApp is pass- nothing is scripted to activate the mainwidget class.
To link your Kivy file to the python script you may need to try different names. I'm using linux and couldn't get an output with The_Lab.kv what worked for me is thelabapp.kv
The best way to start out is using the builder and the kivy script is string in the python script.
thelabapp.kv:
#:kivy 1.10.1

<MainWidget>:
    count: 0
    the_label: _label_main
    Button:
        text: "Hello world"
        on_press: root.click_btn()
    Label:
        id: _label_main
        text: 'today is Wednesday'
Main.py:
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.boxlayout import BoxLayout
 
 
class MainWidget(BoxLayout):    
        
    def click_btn(self):
        self.count += 1
        text_= f'you have press the btn {self.count} times'
        self.the_label.text= text_
    
 
 
class TheLabApp(App):
    def build(self):
        return MainWidget()
    
 
if __name__ == '__main__':
    TheLabApp().run()
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  [Tkinter] Step by Step Installation GUI Vicolas 1 2,236 Mar-30-2019, 08:34 PM
Last Post: Larz60+

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020