Что самый легкий путь состоит в том, чтобы добавить глобальные сочетания клавиш в Windows?

Я разделяю ваше разочарование. Я работал над этим полчаса и ничего не получил. Документы говорят, что set_xlabel принимает arg labelpad , но я получаю ошибку (AttributeError: Неизвестное свойство labelpad)! Установка его после факта ничего не делает, на xaxis или w_xaxis.

Вот грубый обходной путь:

import matplotlib
matplotlib.use("TKAGG")
import matplotlib.pyplot as pyplot
import mpl_toolkits.mplot3d

figure = pyplot.figure(figsize=(8,4), facecolor='w')
ax = figure.gca(projection='3d')

xLabel = ax.set_xlabel('\nXXX xxxxxx xxxx x xx x', linespacing=3.2)
yLabel = ax.set_ylabel('\nYY (y) yyyyyy', linespacing=3.1)
zLabel = ax.set_zlabel('\nZ zzzz zzz (z)', linespacing=3.4)
plot = ax.plot([1,2,3],[1,2,3])
ax.dist = 10

pyplot.show()

enter image description here

5
задан Luke 3 June 2009 в 23:49
поделиться

4 ответа

Эта библиотека тоже неплохая

РЕДАКТИРОВАТЬ: Я недавно создал эту библиотеку, в которой используется другой подход: NHotkey

4
ответ дан 18 December 2019 в 12:01
поделиться

С ярлыком Windows может быть связана горячая клавиша - щелкните правой кнопкой мыши любую программу в меню «Пуск», перейдите Свойства, и вы увидите поле «Сочетание клавиш». Затем Windows будет искать эту горячую клавишу от вашего имени и запускать вашу программу, когда она ее видит. (Я использую его, чтобы заставить Ctrl + Alt + C запустить Калькулятор.)

Чтобы настроить это программно, используйте IShellLink .

4
ответ дан 18 December 2019 в 12:01
поделиться

Вызов этого API:

RegisterHotKey

http://msdn.microsoft.com/en-us/library/ms646309.aspx

http: // www. pinvoke.net/default.aspx/user32/RegisterHotKey.html

Затем переопределите этот метод «WndProc» для отслеживания нажатий клавиш.

protected override void WndProc(ref System.Windows.Forms.Message m)
    {
        // let the base class process the message
        base.WndProc(ref m);

        // if this is a WM_HOTKEY message, notify the parent object
        const int WM_HOTKEY = 0x312;
        if (m.Msg == WM_HOTKEY) ...............

http://msdn.microsoft.com/en-us/library/system.windows. forms.control.wndproc (VS.71) .aspx

4
ответ дан 18 December 2019 в 12:01
поделиться

Нет способа сделать его ненавязчивым.

Добавление глобального сочетания клавиш всегда назойливо. Если вам все равно придется это сделать, убедитесь, что это функция согласия, а не отказа.

3
ответ дан 18 December 2019 в 12:01
поделиться