Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/21: Рейтинг темы: голосов - 21, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 22.10.2017
Сообщений: 23

Графический интерфейс

22.10.2017, 20:54. Показов 4341. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую. Есть скрипт для питона, возможно ли ему написать графическую оболочку с возможностью изменения одной строчки в скрипте?
Так же в графф интерфейсе необходимо сделать кнопку старт и стопа данного скрипта и что бы программа могла сворачиваться в трей.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.10.2017, 20:54
Ответы с готовыми решениями:

Графический интерфейс мессенджера
Всем привет. У меня такая проблема. Я пишу мессенджер, графический интерфейс - PyQt5. Как я могу реализовать такую штуку, как на видео, но...

Вывод массивов на графический интерфейс
Доброго времени суток, подскажите пожалуйста каким образом мне реализовать форму, где есть поле для ввода порядка масива, он заполняеться...

Создать графический интерфейс для программы
Добрый день. Еще не приходилось работать с GUI, но появилась необходимость. Есть py файл который выполняет некоторое полезное действие....

25
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
23.10.2017, 11:11
Цитата Сообщение от KoRn0509 Посмотреть сообщение
с возможностью изменения одной строчки в скрипте?
Штааааа?
Если такое делать - лучше делать, как полагается. То есть одельно выносить заменяемый код.
И GUI тут абсолютно не при чём, это другой вопрос. Не говоря уж про "трей".
0
1 / 1 / 0
Регистрация: 22.10.2017
Сообщений: 23
23.10.2017, 15:13  [ТС]
Цитата Сообщение от dondublon Посмотреть сообщение
Штааааа?
Если такое делать - лучше делать, как полагается. То есть одельно выносить заменяемый код.
И GUI тут абсолютно не при чём, это другой вопрос. Не говоря уж про "трей".
Я сразу хочу сказать что я не разбираюсь в програмировании.
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
23.10.2017, 15:37
Окей.
Изменяемый "на лету" код - на самом деле, штука не такая простая. Питон, конечно, такое позволяет, но всё равно тут надо подходить с осторожностью.
Так что опишите ситуацию конкретнее, может, кто что и посоветует.
0
1 / 1 / 0
Регистрация: 22.10.2017
Сообщений: 23
23.10.2017, 22:34  [ТС]
Вообщем суть такова у меня есть карта захвата Aver Media Live game HD с ней в комплекте идет USB кнопка которая выполняет три функции, первая при нажатии на нее происходит запуск программы для записи видео из папки куда установлена программа, если программа открыта, то при нажатии происходить включение записи, еще раз - остановка записи. Нужно помощь в перепрограмировании данной клавиши что бы она выполняла функцию нажатия определенной клавиши на клавиатуре. По сути это обычное USB устройство ввода-вывода HID. Так же еще хочу сказать что ей не важно что запускать, пробовал заменить exe файл в папке с программой предварительно переименовав его в такое же название, кнопка открыла и ее. Вот теперь бы определить где прописано за что отвечает данное устройство.

Далее был найден скрипт который позволяет задать клавишу клавиатуры или мышки, но для того что бы задать нужно каждый раз править скрип, если необходимо поставить другую клавишу. Вот собственно и хотелось сделать программку на этом скрипте, что бы самой програмке можно было задавать клавишу.

Ниже сам скрипт и источник https://github.com/pixelat3d/C985-KeyInput
Вложения
Тип файла: 7z ptt.7z (1.1 Кб, 0 просмотров)
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
24.10.2017, 10:43
К "горячей замене" кода, а это называется так, ваша задача отношения не имеет.
На этом прощаюсь. Путано объясняете, со знаками препинания не дружите, сложно продираться.
0
1 / 1 / 0
Регистрация: 22.10.2017
Сообщений: 23
24.10.2017, 15:21  [ТС]
Я же сказал что я не разбираюсь в программировании. Я написал как я вижу и представляю решение проблемы. Если есть другой способ более просто, то я только за.
0
24.10.2017, 15:26

Не по теме:


Вы не только в программировании не разбираетесь, у вас проблемы с выражением мыслей и построением фраз.

0
24.10.2017, 15:30  [ТС]

Не по теме:

Я уже понял что от Вас помощи ждать не стоит. Спасибо.

0
24.10.2017, 17:14

Не по теме:


KoRn0509, можете сколько угодно морщить нос в мою сторону, но факт, что кроме меня тут никто даже не заинтересовался вашей задачей, не попытался разобраться, а что же нужно.

0
1 / 1 / 0
Регистрация: 22.10.2017
Сообщений: 23
25.10.2017, 00:13  [ТС]
dondublon, я не морщу нос. Ну что же поделать, если не кто не заинтересовался мои вопросом. Если вы поняли задачу, то прошу помочь. Если нет, то спрашивайте, постараюсь объяснить.
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
25.10.2017, 10:20
1. Для начала - грамотно сформулировать. Вот такое:
Цитата Сообщение от KoRn0509 Посмотреть сообщение
Далее был найден скрипт который позволяет задать клавишу клавиатуры или мышки, но
абсолютно непонятно. Что значит "задать"? Задать на нажатие вашей usb-кнопки?

2. Если у вас есть штатные средства (скрипт, либо собственный софт\драйвера для девайса), то желательно использовать их.

3.
Цитата Сообщение от KoRn0509 Посмотреть сообщение
о для того что бы задать нужно каждый раз править скрип, если необходимо поставить другую клавишу.
Значит, надо найти возможность как-то передать нужную клавишу в скрипт. То есть надо указать, на чём написан скрипт и как вы хотите передавать туда клавишу.
0
1 / 1 / 0
Регистрация: 22.10.2017
Сообщений: 23
25.10.2017, 15:39  [ТС]
Цитата Сообщение от dondublon Посмотреть сообщение
Что значит "задать"? Задать на нажатие вашей usb-кнопки?
Да все верно, задать кнопку клавиатуры на нажатие моей юсб кнопки.
То есть, что бы юсб кнопка выполняла роль нажатия клавиши.

Цитата Сообщение от dondublon Посмотреть сообщение
2. Если у вас есть штатные средства (скрипт, либо собственный софт\драйвера для девайса), то желательно использовать их.
Софт идет с картой захвата и кнопка работает только с ним.
Скрипт же для питона был найден на просторах интернета, который задает юсб кнопке клавишу клавиатуры.
Вот сам скрипт.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
'''
  Repurpose AVERMedia C985 button as push-to-talk key
  (good for Streaming while playing games with a Joystick)
 
  Vendor information for button (via device manger):
  HID\VID_07CA&PID_9850&REV_0101
 
  Requirements:
  pywinusb, pywin32
'''
 
import time
import pywinusb.hid as hid
from win32api import keybd_event
 
class App:
    hid_vendor_id = 0x07CA
    hid_product_id = 0x9850
    hid_device_list = None
    sound_enabled = True
 
    #https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731%28v=vs.85%29.aspx
    ptt_key = 0x13
 
    def start( self ):
        self.hid_device_list = hid.HidDeviceFilter( vendor_id = self.hid_vendor_id, product_id = self.hid_product_id )
        self.hid_device_list = self.hid_device_list.get_devices( )
 
        print "Looking for Device... \nPress Control+C to Quit"
 
        if self.hid_device_list:
            for device in self.hid_device_list:
                    print "Found One!\n"
                    device.open( )
                    device.set_raw_data_handler( self.raw_input_callback )
        else:
            print "Oh No, no devices were found! \n"
 
        while True:
            time.sleep( 1000 ) #HID input/keysend on separate thread.
 
    def raw_input_callback( self, data ):
        # So we know from pushing out the output (data)
        # that we get an array of 9 values, 0-1.
        # index 2 in this array denotes the state of the button
        # 1 is down, 0 is up - so let's send the keypress event to whatever
        # the active window is. Let's just assume people are using global PTT
        #keys so it doesn't really matter what window we actually send the event to.
 
        if data[2] == 1:
            keybd_event( self.ptt_key, 0, 0x0000, 0 )
        elif data[2] == 0:
            keybd_event( self.ptt_key, 0, 0x0002, 0 )
 
if __name__ == '__main__':
    app = App( )
    app.start( )
ptt_key задает клавишу. Мне бы просто хотелось бы это дело облагородить и сделать графический интерфейс с возможностью в нем менять ptt_key. Надеюсь доступно объяснил.
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
25.10.2017, 16:08
KoRn0509, да, теперь понятно.
Скажите, на каким образом вы хотите задавать код клавиши. Заменить-то его много ума не надо, можно хоть из командной строки брать.
0
1 / 1 / 0
Регистрация: 22.10.2017
Сообщений: 23
25.10.2017, 16:16  [ТС]
dondublon,
Ну как я представляю. Маленькое окошко, в нем одна клавишу старт/стоп. И окошко для ввода кода клавиши. Такое реально?
Миниатюры
Графический интерфейс  
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
25.10.2017, 17:09
Разумеется. Сейчас у вас атрибут ptt_key уровня класса, лучше его переместить на уровень экземпляра класса. Если делать совсем по феншую, то так:
Python
1
2
3
4
5
6
7
8
9
10
class App:
    def __init__(self, ppt_key=0x13):
        self._ptt_key = ppt_key
 
    def set_ppt_key(self, value):
        self._ptt_key = value
 
    def get_ppt_key(self):
        return self._ptt_key
    ppt_key = property(get_ppt_key, set_ppt_key)
После этого можно будет достучаться снаружи:
Python
1
2
3
a = App()
a.ppt_key = int('0x20', 16)
print(a.ppt_key)
Не знаю, правда, как вы совместите main loop графического приложения и вашего App(). Наверное, ещё править придётся.
0
1 / 1 / 0
Регистрация: 22.10.2017
Сообщений: 23
25.10.2017, 21:55  [ТС]
dondublon,
А куда или перед чем вставлять? Я же не шарю в этом(
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
26.10.2017, 10:10
У вас есть класс App, в него. На уровне класса существующий атрибут ppt_key убрать.
Ну а вообще желательно немного подучиться. Питон простой. Я же не могу каждым вашим шагом вечно руководить.
0
1 / 1 / 0
Регистрация: 22.10.2017
Сообщений: 23
26.10.2017, 10:50  [ТС]
Если убираю мой ptt_key который был изначально и вставляю ваше в класс то следующая ошибка
"C:\Users\KoRn\Desktop\ptt.py", line 44, in raw_input_callback
keybd_event( self.ptt_key, 0, 0x0000, 0 )
AttributeError: App instance has no attribute 'ptt_key'


ааа все разобрался вы там перепутали ptt с ppt
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
26.10.2017, 12:09
Сорян
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.10.2017, 12:09
Помогаю со студенческими работами здесь

Нужно добавить графический интерфейс в приложение
Хочу сделать прогу с графическим интерфейсом, но с PyQt5 я знаком плохо, поэтому прошу помочь. Нужно сделать окно с тремя строками, в...

Создать графический интерфейс для программы
Написали с руководителем программу на языке python, запускается через функцию в терминале, с вводом аргументов вручную. Надо создать...

Turtle - графический интерфейс(изменить код)
1) Нарисовать вторую кнопку (не изменяя первую!), сделать обработчик нажатия: при клике программа завершается, выполняется функция...

Зависает графический интерфейс при выполнении задачи
Доброго времени суток. Сразу извиняюсь за вопрос, уверен, для специалистов ответ очевиден, но я пишу свою первую программу с GUI (надоело...

На чём лучше делать графический пользовательский интерфейс?
Здравствуйте! Недавно начал увлекаться разработкой различных приложений на Python. Хотелось бы узнать, что сейчас используют разработчики...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru