LINUX.ORG.RU

Сообщения I-Love-Microsoft

 

QGroupBox - разные цвета в заголовке

 ,

Как влепить разные цвета в заголовке QGroupBox? Допустим для QLabel я могу задать режим rich-text и html тэгами раскрасить текст.

Заголовок у QGroupBox - это QFrame + QLabel. Можно ли выдернуть это QLabel или каким-то образом задать текст разных слов?

Да, конечно гуглится QStyleSheet и что оно может задать цвета в тексте заголовка, но только ОДИН цвет, а мне надо чтобы часть букв была других цветов...

I-Love-Microsoft
()

не ловит ответ

 ,

Использую pexpect (expect на python) для работы с коммутатором через telnet:

def snmp(cli):
    text("----- snmp")
    cli.sendline("")
    print "before1=", cli.before
    print "after1=", cli.after
    cli.expect("Switch# ")
    cli.sendline("configure terminal")
    print "before2=", cli.before
    print "after2=", cli.after
    cli.expect("Switch(config)# ")
    cli.sendline("snmp-server community public ro")
    cli.expect("Switch(config)# ")
    cli.sendline("snmp-server community private rw")
    cli.expect("Switch(config)# ")
    text("snmp OK")

def login(cli):
    text("----- login")
    cli.expect('Switch login: ')
    cli.sendline('admin')
    cli.expect('Password:')
    cli.sendline('admin')
    cli.expect("Switch> ")
    cli.sendline("enable")
    cli.expect("Switch# ")
    text("login OK")

def test2():
    import sys
    import pexpect
    cli = pexpect.spawn('telnet 192.168.2.4', timeout = 3)
    cli.delaybeforesend = 0.2
    cli.logfile = sys.stdout
    login(cli)
    snmp(cli)
В результате:
CLI ----- login
Trying 192.168.2.4...
Connected to 192.168.2.4.
Escape character is '^]'.
Switch login: admin
admin
Password: admin


JetNet5310G (version 1.4-20140529-15:14:55).
Copyright 2006-2012 Korenix Technology Co., Ltd.

Switch> enable
enable
Switch# 
CLI login OK

CLI ----- snmp

before1= enable

after1= Switch# 

Switch# configure terminal
before2= 

after2= Switch# 
configure terminal
Switch(config)# Traceback (most recent call last):
Последняя строка это оно уже по таймауту вылетает и как положено.

Вопрос: почему login срабатывает, а это нет? Видно же что искомая строка с пробелом на конце («Switch(config)# », и без него пробовал тоже) - появляется, но pexpect на этом вешается и не реагирует. Есть же ответ, что ему не нравится? Как правильно его использовать? А то уже думаю другую версию expect-а брать.

I-Love-Microsoft
()

библиотека для WebSocket сервера

 ,

Какую библиотеку для работы с WebSocket в качестве сервера можете порекомендовать для применения для языка C/C++? Разумеется, кроссплатформенную, чтобы и под UNIX-like была и под оффтоп.

Гугл дает несколько вариантов, так как нуб - хотел бы послушать советов.

I-Love-Microsoft
()

окно без maximize без возможности масштабирования

 

Вот есть некое окно:

QApplication a(argc, argv);
a.setStyle("fusion");
gui w;
w.setWindowFlags(Qt::Dialog | Qt::WindowTitleHint | Qt::WindowCloseButtonHint | Qt::WindowMinimizeButtonHint | Qt::WindowSystemMenuHint);
w.show();
Как сделать так чтобы и в среде Ubuntu/Unity и в среде windows xp/7 у меня было запрещено масштабировать окно за рамочку и использовать maximize? Вот вроде я поставил флаги без maximize, в Ubuntu/Unity это не приводит к пропаданию кнопки maximize, и за рамку возить можно. А как кроссплатформенно сделать это? Вот в винде пропадает maximize (неактивен), а вот рамка по-прежнему масштабируется...

#ifdef Q_OS_WIN
w.setWindowFlags(Qt::MSWindowsFixedSizeDialogHint);
#endif

Вот это под виндой работает, но увы - суда по названию - это только для маздая...

Я использую Qt 5.4.1 и не верю что в среде Unity это нельзя сделать, что такая примитивная вещь не кроссплатформенна и что флаги по-разному трактуются на разных платформах...

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

I-Love-Microsoft
()

сжать окно до минимума

 ,

Есть окно с фиксированным размером, внутри - stacked widget. В начале он одного размера, затем другого, при этом внутри огромное пространство.

Пока не очень понимаю, как автоматически сделать сжатие окна QMainWindow до минимально возможного размера, чтобы между всеми виджетами и layout-ами не оставалось пустого пространства.

Это можно решить тупым заданием фиксированного размера окна путем подгона, но может есть более профессиональный путь? Может можно как-то сделать рамку окна фиксированной, не задавая setFixedSize?

Задача проста - содержимое меняется при помощи stacked widget, содержимое по наполнению - разное, хочется чтобы оно сжималось до минимума и при этом рамка была фиксированной и нельзя было делать maximize.

I-Love-Microsoft
()

инжектор для PoE 100 Мбит/с

 

Речь идет не о Passive PoE, т.к. питание всё же подается вместе с данными, т.е. и данные и питание по четырем проводам.

Проблема: с какими-то PoE-свитчами устройство работает в режиме 100 Мбит/с, а прочие PoE-инжекторы не работают. Причина не ясна, какое же там различие?

Вот и пытаюсь понять, какой же мне нужен инжектор (нужно новый купить, т.к. покупать для задачи 100% такой же рабочий PoE-свитч это крайне дорого, нужно так сказать однопортовое решение), чтобы питание + Ethernet 100 Мбит/с шли по 1/2/3/6 проводам, а остальные свободные 4 провода я мог использовать для других задач, либо не подключать вовсе...

I-Love-Microsoft
()

плагин закладок между запусками

 

Есть ли плагин для Qt Creator-а чтобы можно было хранить закладки ка каждого активного проекта, например активен один - такой набор, активировал - то другой. А закрыл IDE и запустил уже на следующий день - чтобы закладки сохранялись. В некоторых IDE я такое видел...

P.S.

Я про bookmarks...

I-Love-Microsoft
()

двунаправленно связать UDP и tty

 

Пока что у меня лишь промежуточное решение:

sudo socat PTY,link=/dev/ttyS10 UDP-DATAGRAM:192.168.2.15:5000,broadcast
Я могу открыть ttyS10 при помощи minicom и на каждую букву в терминале minicom отсылается UDP-пакет.

Проблемы:

1) Если допустим открыть при помощи cutecom который отсылает строку лишь по нажатию ввода, то все равно на каждую букву отдельный пакет, например «123<enter>» это четыре пакета 31 32 33 0A. Хотелось бы некоторой группировки символов по некоторому таймауту.

2) При помощи wireshark видно что прилетает ответ на каждую букву (ну, я делаю специальную посылку на другой стороне UDP из нескольких печатаемых ASCII символов), но minicom и cutecom эти ответы не отображают, стало быть связь односторонняя...

Вопрос: как связать UDP и tty чтобы пакеты летали туда сюда, при этом группируя смежные байты? Хочется некоего тоннеля, при этом на одной стороне Linux а на другой лишь UDP и ничего более (самодельное устройство без ОС).

Возможно даже не socat, а другая утилита? В принципе, от безысходности я смогу и программку накатать для этой цели, но хотелось бы что-то стандартненькое...

I-Love-Microsoft
()

определить физическое расположение SSD-диска

 

Если к компьютеру подключено 5 SSD дисков по интерфейсу SATA (или в режиме эмуляции IDE), то можно ли выяснить программно привязку диска и его физического расположение, например номер порта SATA или как-то иначе.

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

I-Love-Microsoft
()

распределенное хранение конфига

 ,

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

Задача такова: нужно хранить ОДИН конфиг распределенно на нескольких устройствах с Linux, и чтобы в любой момент одно из устройств могло быть заменено на такое же но без конфига либо с устаревшем конфигом. При этом реально конфиг нужен одному устройству, а остальные просто хранят, но если можно множественный доступ - я бы не отказался.

Есть ли готовое решение для этой задачи или кто как делает такие вещи?

При этом... доступа в интернет НЕТ!

I-Love-Microsoft
()

аналог Си-шных структур в питоне

 ,

Какой наименее громоздкий аналог Си-шных структур для языка Python. Я гуглил, но что-то мне не нравятся ответы.

Хотелось бы легкий доступ к shit.a = 5 и чтобы print выводил содержимое структуры вместе с названиями полей...

I-Love-Microsoft
()

какие тач-мониторы имеют нормальные дрова?

 ,

Интересует, например, для Ubuntu. Вот есть у меня список мониторов с резистивным тачскрином подходящих по характеристикам. А теперь надо отсеять те что имеют устаревшие или не рабочие драйвера для Linux.

Куда ни захожу - везде вижу устаревшие 10-летней давности дровишки с корявыми инструкциями.

Где есть список 100% поддерживаемых мониторов с тачем, или хотя бы какие производители гарантированно поддерживают Linux? С каким интерфейсом (USB/RS232) меньше гемора под Linux с тачскрином?

Может есть некий стандартный протокол, увидев который в описании, можно было бы точно сказать «да, это Linux уже давно поддерживает и драйвер имеется стандартный»?

I-Love-Microsoft
()

кто уже собирал click-пакеты

 ,

И вот, прошло больше года с тех пор как объявили о создании формата пакетов в упрощенном формате без зависимостей - click-пакетов.

Итак, какие дистры (точнее версии Ubuntu) их поддерживают? Как их делать? Кто пытался и у кого получилось? :)

I-Love-Microsoft
()

настройки без xorg.conf

 ,

Не секрет что xorg.conf в современном X11-сервере отсутствует, типа всё автоматом настраивается и это есть хорошо.

Но что если мне надо кое какие настройки всё же добавить. Могу я создать xorg.conf и вписать туда например:

Section "ServerFlags"
Option "DontVTSwitch" "true"
EndSection
Будет ли это применяться?

I-Love-Microsoft
()

не ловит нажатия стрелок

 ,

Чертовщина: ловит абсолютно ЛЮБЫЕ клавиши кроме стрелок. Пробовал и на Qt 4 и на Qt 5.3.2 и даже Qt 5.4.0 - ну вот что я делаю не так??? Дошел уже до ручки - убрал всё из формы, только пара кнопок осталась. А так пустой почти проект. В общем, вызываются ОБА обработчика на любые клавиши, но не на стрелки! Почему, кто виноват, что делать? У всех такие траблы?

bool my_shit_class::event(QEvent *event)
{
	if(event->type() == QEvent::KeyPress)
	{
		QKeyEvent *ke = static_cast<QKeyEvent*>(event);
		qDebug() << "### pressed" << (int)ke->key();
		if(ke->key() == Qt::Key_Up)
		{
			qDebug() << "pressed Up";
			return true;
		}
	}
	return QWidget::event(event);
}

void my_shit_class::keyPressEvent(QKeyEvent *event)
{
	qDebug() << "*** pressed" << (int)event->key();
}

P.S. Еще TAB не ловит, а так всегда:

### pressed 49 
*** pressed 49 
### pressed 50 
*** pressed 50 
### pressed 51 
*** pressed 51 
### pressed 16777249 
*** pressed 16777249 
### pressed 16777248 
*** pressed 16777248 
### pressed 1040 
*** pressed 1040 
### pressed 1042 
*** pressed 1042 
### pressed 1067 
*** pressed 1067 
### pressed 1040 
*** pressed 1040

I-Love-Microsoft
()

сопоставить данные акселерометра и магнитометра

 ,

Есть показания акселерометра соответствующие им показания магнитометра, т.е. значения захвачены одновременно:

        64        192      15296       -515         97       -148
       -64        -64      15104       -516         96       -149
        64       -256      16832       -519         96       -151
Первые три - акселерометр, второе - магнитометр.

Можно сказать что один вектор тут смотрит вверх, второй тоже некий вектор, который уже ориентирован в другое место (как известно, магнитное поле идет под некими наклонами).

Задача: хочу на основании данных магнитометра получать (вычислять) вектор G, предварительно откалибровав связку акселерометр + магнитометр.

Вопрос: Как это сделать?

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

Отговорите от безумства, может можно математически сделать такое сопоставление? Может умные люди эту давно решенную задачу делают иными известными (не мне) методами? Как-то гуглил, тупо не нашел, то ли это жутко очевидно и я конкретно затупил...

I-Love-Microsoft
()

запретить логин в систему

Пишу в этот раздел, т.к. разрабатываю код + сборку при помощи OpenEmbedded, надеюсь подходит по тематике.

В общем, при старте запускается своя софтина своя графическая на Qt 4/5 на полный экран без возможности закрыть и больше ничего. К качестве init - старый добрый sysvinit.

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

В системе один пользователь root.

Вопрос: помимо удаления

z6:6:respawn:/sbin/sulogin
S0:12345:respawn:/sbin/getty 115200 ttyS0
1:2345:respawn:/sbin/getty 38400 tty1
что еще нужно убрать? Нужно чтобы система вообще не писала *** login: при старте, а при выключении тоже ничего не писала.

Как такое грамотно делать в sysvinit? Не гуглится, или я не те слова пишу. Надеюсь идея ясна на 100% - сделать полностью однозадачную прошивку, которая не позволяет копаться в себе и выходить во всякие консоли и тем более выдернуть программу. К тому же, не хочется никаких текстов типа system going to poweroff и так далее...

Была предыдущая тема Linux: показывать только черный экран при загрузке и там всё сработало как надо - и лишь при выключении системы, когда завершаются иксы - я вижу этот login: мелькает и прочий текст про going to poweroff.

I-Love-Microsoft
()

Android, совместимость аккумуляторов

На одном хорошем телефоне, которому уже два года, деградировал аккумулятор, там стоит Android 4.0.x. Новый аккумулятор к этой модели купить уже невозможно.

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

Вопросы:

1) Правильно ли я понимаю что заряжаются ли-ион аккумы через те же два вывода, через которые с них и снимается напряжение? А внтуренний контроллер не даст ему перегреться и на худой конец пыхнуть или взорваться?

2) Так ли это что Android оценивает уровень заряда аккумулятора оценивая его напряжение (ну например при помощи АЦП), а не получая это значение от контроллера аккумулятора в форме цифры например 34% ?

3) Так как информация о температуре аккумулятора, я подозреваю, идет по третьему контакту от аккумулятора, то тут вот как раз и кроется секрет - насколько этот обмен информацией регламентирован или даже быть может стандартизирован? Я не в курсе.

Задача: хочу купить новый аккумулятор для телефона того же производителя и подпаять к старому телефону. Работать будет??? Отговаривайте :)

I-Love-Microsoft
()

прочитать номер Aladdin eToken PRO

 

Есть у меня пара eToken и надо просто прочитать из номер (который возможно указан на их корпусе). У меня своя сборка с OpenEmbedded и хотелось бы засунуть туда поддержку eToken. А пока пытаюсь на Ubuntu 14.04 LTS 64-bit - для начала просто прочитать номер (его, если не ошибаюсь, можно прочитать безо всяких проблем и паролей, а PIN-код там дефолтный).

Пробовал ставить с оф. сайта - там только для Ubuntu 9.04 32-bit, т.е. совершенно неактуальная версия. А в связи с чем? Нашел какие-то пакеты «pkcs11» и openчтототамsc/cs. Из мануалов так и не нашел как просто прочитать номер eToken-а.

Либо производитель забил на Linux совсем, либо наоборот вывел поддержку на более высокий уровень, заопенсорсив средства работы с ключами или кто-то создал открытую альтернативу по части софта? Кто в курсе как там дела? :)

Прошу прощения что потревожил знатоков темы :) tazhate v9lij AEP DonkeyHot no-dashi

I-Love-Microsoft
()

выключить калибровку

 ,

Сделал сборку на базе OpenEmbedded, в ней есть графика + софтина на Qt. Работает X11 и matchbox-window-manager. Хочу чтобы была только мышка, и никакие тачскрины.

Так вот, на некоторых ноутах, на которых кстати даже нету тачскрина, вдруг вылезает окошко, судя по всему xinput-calibrator и мешает работе моей программы.

Есть ли способ, помимо выкидывания бинарника xinput-calibrator из сборки, сделать так, чтобы X11-сервер ни при каких обстоятельствах не просил калибровку?

P.S. В этот раздел, т.к. это реально касается разработки.

I-Love-Microsoft
()