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

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

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

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

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

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

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

25
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 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
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 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
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 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
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 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
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
25.10.2017, 16:08
KoRn0509, да, теперь понятно.
Скажите, на каким образом вы хотите задавать код клавиши. Заменить-то его много ума не надо, можно хоть из командной строки брать.
0
1 / 1 / 0
Регистрация: 22.10.2017
Сообщений: 23
25.10.2017, 16:16  [ТС]
dondublon,
Ну как я представляю. Маленькое окошко, в нем одна клавишу старт/стоп. И окошко для ввода кода клавиши. Такое реально?
Миниатюры
Графический интерфейс  
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 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
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 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
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru