KanvasBuddy - a Minimalist Toolbar

That worked! Thanks a lot!

Amazing !! I Love KanvasBuddy !!! Thank you…Thank you so much… :innocent: :pray: :pray:

A problem occurred in a Python script. Here is the sequence of
function calls leading up to the error, in the order they occurred.
??

You forgot that listing.
May I ask which Version of Kanvas-Buddy you have used? The original by @Kapyia, the patched original by @SchrodingerCat, or the one by @Halcyoen? Only the last two will work with Krita 5, but I recommend @Halcyoen’s version.

Michelist

More Thaks :slightly_smiling_face:

1 Like

Hi!
When I used Halcyoen’s KB in krita 5.2beta, I got an error and could not start.





TypeError
Python 3.10.7: E:\アプリ\Krita (x64)\bin\krita.exe
Sun Aug 13 01:22:55 2023

A problem occurred in a Python script.  Here is the sequence of
function calls leading up to the error, in the order they occurred.

 C:\Users\user\AppData\Roaming\krita\pykrita\kanvasbuddy\kanvasbuddy.py in launchInterface(self=<kanvasbuddy.kanvasbuddy.KanvasBuddy object>)
   55             # importlib.reload(uikanvasbuddy) # FOR TESTING ONLY
   56             self.isActive = True
   57             ui = uikanvasbuddy.UIKanvasBuddy(self)
   58             ui.launch()
   59 
ui undefined
global uikanvasbuddy = <module 'kanvasbuddy.uikanvasbuddy' from 'C:\\Us...\\krita\\pykrita\\kanvasbuddy\\uikanvasbuddy.py'>
uikanvasbuddy.UIKanvasBuddy = <class 'kanvasbuddy.uikanvasbuddy.UIKanvasBuddy'>
self = <kanvasbuddy.kanvasbuddy.KanvasBuddy object>

 C:\Users\user\AppData\Roaming\krita\pykrita\kanvasbuddy\uikanvasbuddy.py in __init__(self=<kanvasbuddy.uikanvasbuddy.UIKanvasBuddy object>, kbuddy=<kanvasbuddy.kanvasbuddy.KanvasBuddy object>)
   48         self.layout().addWidget(KBTitleBar(self))
   49 
   50         self.panelStack = KBPanelStack(self)
   51         self.layout().addWidget(self.panelStack)
   52 
self = <kanvasbuddy.uikanvasbuddy.UIKanvasBuddy object>
self.panelStack undefined
global KBPanelStack = <class 'kanvasbuddy.kbpanelstack.KBPanelStack'>

 C:\Users\user\AppData\Roaming\krita\pykrita\kanvasbuddy\kbpanelstack.py in __init__(self=<kanvasbuddy.kbpanelstack.KBPanelStack object>, parent=<kanvasbuddy.uikanvasbuddy.UIKanvasBuddy object>)
   33         self.shortcutConnections = []
   34 
   35         self._mainWidget = KBMainWidget()
   36         self.addPanel('MAIN', self._mainWidget)
   37         self.appendShortcutAction('MAIN')
self = <kanvasbuddy.kbpanelstack.KBPanelStack object>
self._mainWidget undefined
global KBMainWidget = <class 'kanvasbuddy.kbmainwidget.KBMainWidget'>

 C:\Users\user\AppData\Roaming\krita\pykrita\kanvasbuddy\kbmainwidget.py in __init__(self=<kanvasbuddy.kbmainwidget.KBMainWidget object>, parent=None)
   39 
   40         self.propSliders = KBSliderBar()
   41         self.initSliders()
   42         self.layout().addWidget(self.propSliders)
   43 
self = <kanvasbuddy.kbmainwidget.KBMainWidget object>
self.initSliders = <bound method KBMainWidget.initSliders of <kanvasbuddy.kbmainwidget.KBMainWidget object>>

 C:\Users\user\AppData\Roaming\krita\pykrita\kanvasbuddy\kbmainwidget.py in initSliders(self=<kanvasbuddy.kbmainwidget.KBMainWidget object>)
   57                 self.propSliders.addSlider(entry)
   58 
   59         self.synchronizeSliders()
   60 
   61 
self = <kanvasbuddy.kbmainwidget.KBMainWidget object>
self.synchronizeSliders = <bound method KBMainWidget.synchronizeSliders of <kanvasbuddy.kbmainwidget.KBMainWidget object>>

 C:\Users\user\AppData\Roaming\krita\pykrita\kanvasbuddy\kbmainwidget.py in synchronizeSliders(self=<kanvasbuddy.kbmainwidget.KBMainWidget object>)
   78 
   79 
   80 
   81     def synchronizeSliders(self):
   82         self.propSliders.synchronizeSliders()
self = <kanvasbuddy.kbmainwidget.KBMainWidget object>
self.propSliders = <kanvasbuddy.kbsliderbar.KBSliderBar object>
self.propSliders.synchronizeSliders = <bound method KBSliderBar.synchronizeSliders of <kanvasbuddy.kbsliderbar.KBSliderBar object>>

 C:\Users\user\AppData\Roaming\krita\pykrita\kanvasbuddy\kbsliderbar.py in synchronizeSliders(self=<kanvasbuddy.kbsliderbar.KBSliderBar object>)
   44 
   45 
   46     def synchronizeSliders(self):
   47         for slider in self._sliders:
   48             self._sliders[slider].synchronize()
self = <kanvasbuddy.kbsliderbar.KBSliderBar object>
self._sliders = {'brushFlow': <kanvasbuddy.kbsliderpresets.KBFlowSlider object>, 'brushOpacity': <kanvasbuddy.kbsliderpresets.KBOpacitySlider object>, 'brushSize': <kanvasbuddy.kbsliderpresets.KBSizeSlider object>, 'canvasRotation': <kanvasbuddy.kbsliderpresets.KBRotationSlider object>}
slider = 'brushSize'
].synchronize undefined

 C:\Users\user\AppData\Roaming\krita\pykrita\kanvasbuddy\kbsliderpresets.py in synchronize(self=<kanvasbuddy.kbsliderpresets.KBSizeSlider object>)
   27 
   28     def synchronize(self):
   29         self.setValue(self.view.brushSize())
   30 
   31 
self = <kanvasbuddy.kbsliderpresets.KBSizeSlider object>
self.setValue = <bound method KBSliderSpinBox.setValue of <kanvasbuddy.kbsliderpresets.KBSizeSlider object>>
self.view = <PyKrita.krita.View object>
self.view.brushSize = <built-in method brushSize of View object>

 C:\Users\user\AppData\Roaming\krita\pykrita\kanvasbuddy\kbsliderspinbox.py in setValue(self=<kanvasbuddy.kbsliderpresets.KBSizeSlider object>, val=50.0)
  113 
  114     def setValue(self, val):
  115         self.spinbox.setValue(val)
  116         self.updateProgBar()
  117 
self = <kanvasbuddy.kbsliderpresets.KBSizeSlider object>
self.spinbox = <PyQt5.QtWidgets.QSpinBox object>
self.spinbox.setValue = <built-in method setValue of QSpinBox object>
val = 50.0
TypeError: setValue(self, int): argument 1 has unexpected type 'float'
    __cause__ = None
    __class__ = <class 'TypeError'>
    __context__ = None
    __delattr__ = <method-wrapper '__delattr__' of TypeError object>
    __dict__ = {}
    __dir__ = <built-in method __dir__ of TypeError object>
    __doc__ = 'Inappropriate argument type.'
    __eq__ = <method-wrapper '__eq__' of TypeError object>
    __format__ = <built-in method __format__ of TypeError object>
    __ge__ = <method-wrapper '__ge__' of TypeError object>
    __getattribute__ = <method-wrapper '__getattribute__' of TypeError object>
    __gt__ = <method-wrapper '__gt__' of TypeError object>
    __hash__ = <method-wrapper '__hash__' of TypeError object>
    __init__ = <method-wrapper '__init__' of TypeError object>
    __init_subclass__ = <built-in method __init_subclass__ of type object>
    __le__ = <method-wrapper '__le__' of TypeError object>
    __lt__ = <method-wrapper '__lt__' of TypeError object>
    __ne__ = <method-wrapper '__ne__' of TypeError object>
    __new__ = <built-in method __new__ of type object>
    __reduce__ = <built-in method __reduce__ of TypeError object>
    __reduce_ex__ = <built-in method __reduce_ex__ of TypeError object>
    __repr__ = <method-wrapper '__repr__' of TypeError object>
    __setattr__ = <method-wrapper '__setattr__' of TypeError object>
    __setstate__ = <built-in method __setstate__ of TypeError object>
    __sizeof__ = <built-in method __sizeof__ of TypeError object>
    __str__ = <method-wrapper '__str__' of TypeError object>
    __subclasshook__ = <built-in method __subclasshook__ of type object>
    __suppress_context__ = False
    __traceback__ = <traceback object>
    args = ("setValue(self, int): argument 1 has unexpected type 'float'",)
    with_traceback = <built-in method with_traceback of TypeError object>

The above is a description of an error in a Python program.  Here is
the original traceback:

Traceback (most recent call last):
  File "C:\Users\user\AppData\Roaming\krita\pykrita\kanvasbuddy\kanvasbuddy.py", line 57, in launchInterface
    ui = uikanvasbuddy.UIKanvasBuddy(self)
  File "C:\Users\user\AppData\Roaming\krita\pykrita\kanvasbuddy\uikanvasbuddy.py", line 50, in __init__
    self.panelStack = KBPanelStack(self)
  File "C:\Users\user\AppData\Roaming\krita\pykrita\kanvasbuddy\kbpanelstack.py", line 35, in __init__
    self._mainWidget = KBMainWidget()
  File "C:\Users\user\AppData\Roaming\krita\pykrita\kanvasbuddy\kbmainwidget.py", line 41, in __init__
    self.initSliders()
  File "C:\Users\user\AppData\Roaming\krita\pykrita\kanvasbuddy\kbmainwidget.py", line 59, in initSliders
    self.synchronizeSliders()
  File "C:\Users\user\AppData\Roaming\krita\pykrita\kanvasbuddy\kbmainwidget.py", line 82, in synchronizeSliders
    self.propSliders.synchronizeSliders()
  File "C:\Users\user\AppData\Roaming\krita\pykrita\kanvasbuddy\kbsliderbar.py", line 48, in synchronizeSliders
    self._sliders[slider].synchronize()
  File "C:\Users\user\AppData\Roaming\krita\pykrita\kanvasbuddy\kbsliderpresets.py", line 29, in synchronize
    self.setValue(self.view.brushSize())
  File "C:\Users\user\AppData\Roaming\krita\pykrita\kanvasbuddy\kbsliderspinbox.py", line 115, in setValue
    self.spinbox.setValue(val)
TypeError: setValue(self, int): argument 1 has unexpected type 'float'




Is it just me or is this a problem?

hey! I’ve been using kanvasbuddy for a while but ever since the beta releases of krita it doesn’t seem to be working anymore? whenever I try to use it only this pops up

this is what pops up when I open KB and it’s not working is there a solution

@blowingking, which version of Krita, Windows and Kanvas Buddy do you use?

The shown version of Python in your screenshot indicates that you are not running the current BETA. If you are running a Krita 5.x-Version, then you can use the version offered here by @Halcyoen:

The thing is, on versions before the current BETA’s at least @Halcyoen’s version will work, so what are your “working conditions”?

Michelist

1 Like

thank you it works now

Would you mind telling us what you did? Maybe someone can profit from your solution?

Michelist

I just downloaded this version that you suggested and it worked KanvasBuddy - a Minimalist Toolbar - #165 by Halcyoen

1 Like

thank you for this amazing plugin now I can fully work in full-screen mode

I don’t know if you are aware of @wojtryb’s ‘Shortcut Composer’, but that is a very good addition to Kanvas Buddy, and in many places a replacement as well:

Michelist

Add/Edit: If you additionally install “Krita-UI-Redesign” from @slightlyangrydodo, then you’ll have an extremely comfortable workspace with everything one could possibly need while painting. At least, if you don’t take your favorite drink and small snacks for in between into account.

1 Like

@KIO @PlestoceneGarbage @Taffs_swagging

i have updated my patch for Krita 5.2. you will need to reinstall the plugin:

download
source

(same links as in my earlier posts)

9 Likes

@Halcyoen: Thank you for acting and updating one of my most popular plugins!

Michelist

Thank you for the update!
It was a very important plugin for me and I appreciate it very much!

That plugin is a good and useful one too.
I had checked it out too, but I didn’t think it was possible to register a docker. Is it possible?
I’m using a display that is not that wide, so KB would be very helpful.

Shortcut composer is for very versatile pie-menus and allows configuring them the way you like, if your question was geared towards shortcut-composer.
For me, the advantage(s) arise out of the combination of the three plugins KanvasBuddy, Shortcut-Composer & UI-Redesign. And I have to admit using a relatively large workspace with my 3 display-setup, from left to right 24’‘, 32’‘, 37’', but unfortunately can’t paint currently because of a nervous disease.

Michelist

1 Like

Thanks for the reply. It’s a lovely workspace.
Please take care of yourself.

1 Like